【发布时间】:2012-01-15 09:26:01
【问题描述】:
当我们启用 memcache(在 nginx Web 服务器上)时,我们遇到会话从 Magento 1.10 随机消失的问题。
我们在 Magento 中设置 cookie 过期时间似乎并不重要,由于某种原因,会话在一小时内的任何随机时间都会消失。
如果我们关闭 memcache,它就可以正常工作。
我们最终将需要多台服务器连接到一个基于会话的缓存解决方案,因此 memcache 似乎是唯一的选择。此外,我们现在只在 memcache 中缓存会话,当我检查 memcache 统计信息时,我们离阈值限制还很远。
这是local.xml中的memcache设置:
<cache>
<type>memcached</type>
<path/>
<servers>
<localhost>
<host><![CDATA[127.0.0.1]]></host>
<port><![CDATA[11211]]></port>
<persistent><![CDATA[1]]></persistent>
</localhost>
</servers>
</cache>
<session_save><![CDATA[memcache]]></session_save> <!-- db / memcache / empty=files -->
<session_save_path><![CDATA[tcp://localhost:11211?persistent=0&weight;=2&timeout;=10&retry;_interval=10]]></session_save_path>
<session_cache_limiter><![CDATA[private]]></session_cache_limiter>
整个事情的难点在于,由于会话在一小时内的某个时间清除,因此很难重现。有时是一分钟之内,有时是 45...
我们这里有几个人在多个虚拟服务器系统中的所有不同浏览器中尝试过它(以消除冲突),他们似乎都明白同样的时间。
现在逻辑会规定,有一个进程正在刷新内存缓存,但我不知道如何测试,如果我这样做了,如何判断是什么清除了它。我查看了 Magento 代码,但找不到任何看起来像是在清除它或从 memcache 中删除会话的东西。
但我确实发现,“前端”cookie 在会话结束后仍保留在浏览器上,当我签入内存缓存板时,cookie 消失了。
并非所有的键/值都从内存缓存中消失,在这种情况下只是其中的一些。由于某种原因,我的和其他 2 或 3 个完全失踪了。
现在,我要问的不仅是有人遇到过这种情况,而且还有人对尝试什么有任何其他想法吗?
我一直在使用(著名的)memcache.php 文件来监控服务器上的 memcache 系统。我可以尝试其他任何想法/应用程序吗?
【问题讨论】:
-
对此的任何更新,我们在 Apache 和 Memcache 上都有同样的问题。非常感谢任何帮助,这是一个紧迫的问题
标签: session magento cookies memcached