为什么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等。




[本日志由 admin 于 2014-09-03 05:14 PM 编辑]

有什么问题可以加群,100852896
点击这里加入此群 在线提问
文章来自: 本站原创
Tags: phpcms 缓存
评论: 0 | 查看次数: 2788
博主QQ: 友情链接请找我
QQ群: 灰色档案
返回顶部 关闭