【发布时间】:2011-11-29 13:41:34
【问题描述】:
我的服务器上的 memcached 存在一些问题。它似乎已全部安装并正确运行(telnet localhost 11211 - stats 显示一切正常)。但是,当我在 Magento 中启用它时,它似乎使用了一个旧缓存,其中包含支付页面上的错误。如果我在 Magento 中禁用 memcached(通过删除 local.xml 中的 xml),则结帐再次正常工作。 我试过flush_all,也试过让memcached关闭几天,但错误不断出现。
我认为出现错误缓存是因为我第一次启用 memcached 时我的网站出现了错误。所以我更正了错误并重新启用了 memcached……
我可以完全清除 memcached 使其不使用旧缓存吗?我的配置不正确吗?
这是我在 local.xml 中使用的代码
<cache>
<prefix>alphanumeric</prefix>
<backend>memcached</backend><!-- apc / memcached / empty=file -->
<memcached><!-- memcached cache backend related config -->
<servers><!-- any number of server nodes can be included -->
<server>
<host><![CDATA[127.0.0.1]]></host>
<port><![CDATA[11211]]></port>
<persistent><![CDATA[1]]></persistent>
</server>
</servers>
<compression><![CDATA[0]]></compression>
<cache_dir><![CDATA[]]></cache_dir>
<hashed_directory_level><![CDATA[]]></hashed_directory_level>
<hashed_directory_umask><![CDATA[]]></hashed_directory_umask>
<file_name_prefix><![CDATA[]]></file_name_prefix>
</memcached>
</cache>
谢谢
【问题讨论】:
-
远程登录并发出
flush_all应该使缓存无效。您是否通过系统 > 缓存管理清除了 Magento 缓存? -
好吧,我想知道是否还需要刷新 magento 缓存。两者有关系吗?
-
是的,但是当您 telnet 并选择 flush_all 时,这应该是权威的并且等于单击“刷新缓存存储”按钮。
-
Magento 使用 2 级缓存。也许它清理了慢速后端(我想在你的情况下是文件)但是当你从 magento 管理员中使缓存失效时没有清理快速后端(memcache)。尝试从管理员中使缓存无效并使用@Ben 建议通过 telnet 手动清理 memcached 缓存。
-
@sulman,你启用“编译”功能了吗?如果是这样,首先停止 memcache,通过 ssh 清除 var/cache 目录,然后禁用“编译”选项。之后,您可以再次启动 memcache。有时,我的 linux 服务器也会遇到同样的问题。