我在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也没有任何作用。
有人有处理此类问题的经验吗?