gpt4 book ai didi

session - Magento Memcached session

转载 作者:行者123 更新时间:2023-11-30 23:49:16 25 4
gpt4 key购买 nike

我目前正在尝试使用以下设置为 Magento 设置生产环境:

2 个 Web 服务器、1 个数据库服务器、负载均衡器。

因此负载平衡器将在 Web 服务器之间分配流量,但不会使用粘性 session 。

为了解决服务器之间共享 session 的问题,我选择使用 Memcached。我有一个 Memcached 服务器在每个 web 服务器上运行,然后在每个 web 服务器上的 local.xml 中指定了 memcached 服务器列表。

缓存正在工作,因为我确实注意到速度有所提高,而且我可以看到 session 正在跨 Web 服务器共享。问题在于缓存工作得有点太好了。页面的动态部分(例如购物车和消息)为每个页面完全缓存。

我注意到您调用的将购物车放在页面上的 getChildHtml() 有一个名为 useCache 的可选参数,我明确传入 false 但这没有任何作用。这是我的 local.xml 定义,以防万一我在那里做错了(敏感信息已被忽略):

<config>
<global>
<install>
<date></date>
</install>
<crypt>
<key></key>
</crypt>
<disable_local_modules>false</disable_local_modules>
<resources>
<db>
<table_prefix></table_prefix>
</db>
<default_setup>
<connection>
</connection>
</default_setup>
</resources>
<session_save><![CDATA[memcache]]></session_save> <!-- db / memcache / empty=files -->
<session_save_path><![CDATA[tcp://X.X.X.X:11211?persistent=1&weight=2&timeout=10&retry_interval=10]]></session_save_path><!-- e.g. for memcache session save handler tcp://10.0.0.1:11211?persistent=1&weight=2&timeout=10&retry_interval=10 -->
<session_cache_limiter><![CDATA[private]]></session_cache_limiter><!-- see http://php.net/manual/en/function.session-cache-limiter.php#82174 for possible values -->
<cache>
<backend>memcached</backend><!-- apc / memcached / xcache / empty=file -->
<slow_backend>database</slow_backend> <!-- database / file (default) - used for 2 levels cache setup, necessary for all shared memory storages -->
<slow_backend_store_data></slow_backend_store_data> <!-- 1 / 0 (default) - used for 2 levels cache setup, sets whether store data in db slow cache backend -->
<auto_refresh_fast_cache>1</auto_refresh_fast_cache> <!-- 1 / 0 (default) - used for 2 levels cache setup, sets whether refresh data in fast cache backend -->
<memcached><!-- memcached cache backend related config -->
<servers><!-- any number of server nodes can be included -->
<server>
<host><![CDATA[X.X.X.X]]></host>
<port><![CDATA[11211]]></port>
<persistent><![CDATA[1]]></persistent>
</server>
<server>
<host><![CDATA[X.X.X.X]]></host>
<port><![CDATA[11211]]></port>
<persistent><![CDATA[1]]></persistent>
</server>
</servers>
</memcached>
</cache>
</global>
<admin>
<routers>
<adminhtml>
<args>
<frontName><![CDATA[admin]]></frontName>
</args>
</adminhtml>
</routers>
</admin>

我还注意到其他奇怪的行为,例如能够在管理面板的缓存管理屏幕中清除缓存。在 Magento 中使用 memcached 时这是否正常,我该如何解决整个页面被缓存的问题?

最佳答案

对于仍然有类似问题的任何人,我已经设法解决了我的问题。我在这里遇到的主要问题是我在每个 Web 节点上使用了不同的 memcached 服务器,这是不正确的,因为它使用您的 session 作为查找缓存数据的键。此外,您需要确保将服务器标记中的持久元素设置为 0 而不是 1。有了这些设置,站点现在可以正常工作了。

关于session - Magento Memcached session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6255471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com