为什么phpcms的缓存不能失效

用过sae的同学应该知道sae上面是不能写本地文件的,但PHPCMS默认的缓存就是文件缓存,并且缓存在phpcms又相当重要,如果想在sae上运行phpcms首先要解决的就是把文件缓存换掉。

之前看phpcms源码的时候有看到过phpcms有一个cache_factory作为一个缓存的工厂,又看到phpcms还有cache_file和cache_memcache这两个缓存类,以为phpcms可以直接从文件缓存切换到memcache缓存。

 今天又研究了一下phpcms的源码,发现问题大了。

首先phpcms的cache_file和cache_memcache实现的根本不是同一个接口,这意味着这两个类的实例不能互换。

其次是即使可以通过实现一个新的类让并且让这个类实现与cache_file一样的接口,也不行。因为phpcms的缓存不是自动生成的,他是通过后台手动生成的。前台有很多地方都是默认按照有缓存的情况下执行的(就是不判断缓存的存在性)。如果使用像memcached这样的缓存服务器,一旦一些key值的缓存失效(失效的原因有很多),前台的页面就不能够再正常执行了。

来自: http://www.zeroplace.cn/article.asp?id=914

所以结论就是:phpcms缓存不能换成memcached这种易失性的,可以考虑用mysql缓存,ttserver等。



文章来自: 本站原创
Tags:
评论: 0 | 查看次数: 5437