设置php缓存失效,为什么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值的缓存失效(失效的原因有很多),前台的页面就不能够再正常执行了。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值