服务器安装memcache扩展,网站开启wp super cache里的实验功能“使用对象缓存系统来存储缓存文件”之后,网站访问速度确实有质的飞跃,而且服务器负载也降低了很多。但有一个头疼的事情就是后台更新文章的时候,不得不先暂停缓存功能,或者先取消“使用对象缓存系统来存储缓存文件”,因为若不这样,在后台更新的文章往往不能及时发布出来。有时候忘记关闭缓存了,直接在后台更新文章之后,前台显示出来的文章就是一个临时草稿,这时候不得不手工清除一次服务器的缓存,见《强制清除Memcache中的缓存的方法》这篇文章。但这总归不是一个好的解决办法,有没有什么方法能够兼顾缓存的加速功能又能实时更新网站内容呢?我在国内网站上找了不少资料,一直没有找到好的方案。
直到今天,在测试woocommerce的购物车功能的时候,我发现由于memcache缓存的原因,造成购物车不能实时更新,这样问题就大了,岂不是所有访问者都会受到缓存更新不及时的影响?既然问题迫到眼前,不得不解决了,那就一并将上述两个问题解决了吧。
这次我用google上海外网站寻求帮助,果然,有人有类似的问题,还真不错,有大神对memcache的插件文件 object-cache.php 做了修改,中间的过程我就不详细描述了,反正是很复杂很复杂,最后结果就是把上面两个问题解决了。
大神的原文在此:《Fixing WooCommerce + Memcached performance》
文章末尾附件下载后直接覆盖原来的 object-cache.php 即可。(PS: 原文访问速度有点捉急,请自带梯子翻墙 :))