为什么通过CLI通过Memcached Object Cache在Wordpress的W3TC插件中不起作用?

时间:2019-05-15 10:21:59

标签: php wordpress memcached w3-total-cache

我在Wordpress中使用W3 Total Cache插件,并将对象缓存设置为使用Memcached。

我创建了一个测试文件,该文件应该通过wp_cache_set()存储复杂操作的结果,并将在以后的脚本调用中通过wp_cache_get()使用它,以节省执行时间。当我在第一次调用时通过浏览器调用脚本时,一切都运行良好,然后从缓存中加载了脚本(我知道这是因为我在json输出中添加了cache_status字段,当然,我看到第一次调用的速度要慢得多)。

问题在于,当我通过CLI调用文件时,在以后的所有调用中缓存状态仍然为false,这意味着wp_cache_get()无法在memcached服务器中找到密钥。

我已经检查过,Memcached模块已在CLI php.ini中启用,并且可以在php脚本中使用。

我认为W3TC可能会在我的memcached密钥中添加一些前缀,该前缀基于环境(可能是主机名或其他名称),当然在cli环境中有所不同。但是我没有找到关于它的任何文档,也不知道如何调试。我发现项目键包含一些变量,例如host,blog_id和module,但我不确定它们的定义位置:https://github.com/crowdfavorite-mirrors/wp-w3-total-cache/blob/master/Cache_Base.php#L190

设置WP_CACHE_KEY_SALT也没有任何作用。

有人有处理此类问题的经验吗?

0 个答案:

没有答案