Magento会话存储:Redis与Memcached


10

我正在运行Magento EE 1.12.2(在CE 1.7.2中也是如此),在这里我们有Redis进行缓存(Cm_Cache扩展,Redis v 2.2.12),但是我们使用Memcache进行会话存储。

这些Magento版本不支持开箱即用的Redis。所以我在这里关注的是:

  • 在工作量和速度改进方面,是否值得将会话存储放入Redis中?
  • Memcache是​​否一样好,甚至更好?

在此项目中,由于需要将第三方XML文件存储到会话中,因此会话文件很大,因此优化会话读写可能会产生很大的影响。

来自local.xml

<session_save><![CDATA[memcache]]></session_save>

和:

<cache>
    <backend>Cm_Cache_Backend_Redis</backend>
    [...]
</cache>

Answers:


11

按照我的观点,Redis是最好的:

Memcached是免费和开放源代码,内存中键值存储,高性能,分布式内存对象缓存系统。

Redis是一个开放源代码的网络内存中键值数据存储,具有可选的持久性。

因为

  1. Memcached是易失的内存中键/值存储。Redis可以像一个人一样工作(并且可以做像Memcached一样的工作)
  2. 它的体系结构适合于更快地保存数据。
  3. 数据获取速度更快
  4. 默认情况下对磁盘的持久性
  5. 值最大为512MB(Memcached每个密钥限制为1MB)
  6. 内置集群

Redis不支持LRU或任何类似的用于处理过载的策略Redis不支持CAS(检查并设置),这对于保持缓存一致性很有用-请参阅Memcached缓存不一致的最常见来源是什么?(尽管有SETNX操作使此操作不必要)

在此处输入图片说明

更多详细信息:Stackoverflow“ Memcached与Redis?”

Redis更快的数据支持的一些细节:Redis.io


好的,这是一个很好的比较,该链接提供了很多有关两者之间差异的信息。但是当已经使用Memcache将其更改为Redis时,实际上值得尝试吗?
7ochem

yes.it只有woth当你将使用Redis的......你的Magento EE 1.12.2.be使用Redis的
阿米特·贝拉

7ochem,你让我投下反对票吗?
阿米特·贝拉

3
伟大的贡献。有同样的问题。现在使用redis。在一家商店工作出色,但在另一家商店工作的效率稍差。一定要尝试memchache。@AmitBera是否可以堆栈memcache + apc或redis + apc以及local.xml的外观如何。
Kay Int Veen 2015年

3
“ Redis不支持LRU或任何类似的策略来处理过载”-您可能想要删除它,除非您表示不同的意思。另外,由于OP希望将会话而不是缓存迁移到Redis,因此理想情况下,会话逐出是基于时间的,而不是基于大小的,因此LRU并不是一个好处。
梅尔文

6

1.7.2中的CM Redis Cache不是黑客,Magento只是默认情况下将代码添加到1.8+,因为它工作得很好并且易于实现。

由于数据库的原因,Redis支持在同一服务器实例中具有缓存和会话。在memcached中,您可能会启动多个memcached实例。

Memcached也可以写入磁盘,这可以用于在服务重新启动后保存会话。写入磁盘时,memcached可能会锁定一段时间,因此会在您的站点上显示错误。Redis将更好地处理此问题,因为已经显示了此Stack上的其他一些问题。

所以我建议Redis优先于memcached。


5

不幸的是,这不是一个黑白答案。所以,我会给你赞成和反对的意见:

记忆快取:

  • 硬编码的数据限制(不要丢弃此问题,管理会话可以轻松超过此限制)
  • 保存到磁盘时停滞
  • 性能稍差
  • Magento扩展程序没有机器人防御

Redis:

  • 锁定Session ::在某些商店中读取的问题,这是由于并发访问会话引起的。
  • 在一个实例中支持多个数据库,但有一些警告。
  • Magento扩展支持防御僵尸程序,并附带迁移脚本
  • Magento扩展支持快速的压缩算法
  • 更积极地维护代码库

现在,如果您只关心速度,那么只需运行负载测试即可。Blazemeter的免费帐户让您使用50个虚拟用户,这足以衡量差异。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.