Magento 与 RedisLab Redis 集群后端

标签 magento redis redislabs

Magento RedisLab集群集成问题

在我们部署集群 redis 数据库后,FPC 和 Session 工作正常,但是当我们添加带有 Magento 缓存部分的集群 redis (RedisLab) 实例时,我们面临一个问题。

当点击ADD TO CART >>显示无法添加商品

后端错误

  Next exception 'Zend_Cache_Exception' with message 'Error cleaning cache by mode matchingAnyTag: ERR CROSSSLOT Keys in request don't hash to the same slot (command='SUNION', key='zc:ti:da3_QUOTE_2156255')' in /var/www/magento/lib/Zend/Cache.php:209
    Stack trace:
    3
    #6 /var/www/magento/app/code/core/Mage/Core/Model/Abstract.php(464): Mage_Core_Model_Abstract->cleanModelCache()
    #7 /var/www/magento/app/code/core/Mage/Sales/Model/Quote.php(333): Mage_Core_Model_Abstract->_afterSave()
    #8 /var/www/magento/app/code/core/Mage/Core/Model/Abstract.php(319): Mage_Sales_Model_Quote->_afterSave()
    #9 /var/www/magento/app/code/core/Mage/Sales/Model/Quote.php(1966): Mage_Core_Model_Abstract->save()
    #10 /var/www/magento/app/code/core/Mage/Checkout/Model/Cart.php(459): Mage_Sales_Model_Quote->save()
    #11 /var/www/magento/app/code/core/Mage/Checkout/controllers/CartController.php(223): Mage_Checkout_Model_Cart->save()
    #12 /var/www/magento/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Checkout_CartController->addAction()
    #13 /var/www/magento/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('add')
    #14 /var/www/magento/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
    #15 /var/www/magento/app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
    #16 /var/www/magento/app/Mage.php(684): Mage_Core_Model_App->run(Array)
    #17 /var/www/magento/index.php(85): Mage::run('', 'store')
    #18 {main}

如果我禁用异常然后它的工作文件

/var/www/magento/lib/Zend/Cache.php:209

最佳答案

  • 只是遇到了和你一样的异常,我相信这个案例属于你的自定义工作尝试让 magento 与 redis-cluster 一起工作
  • 我的解决方案:
    • 先去掉redis-client.php库中的异常,返回IP:PORT
    • 通过redis-cluster.php中的哈希函数找到正确的客户端
    • 使用正确的客户端执行命令
  • 需要覆盖 load , remove , _removeByMatchingTags...

关于Magento 与 RedisLab Redis 集群后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36055914/

相关文章:

php - 如何覆盖 Magento 模型中的表名和前缀?

magento 添加项目并重定向到 url 中的一页结账

redis - 无法编译 64 位 redis-server

node.js - 在插入 rethinkdb 之前,如何使用 redis 缓冲 twitter 流?

lua - 使用 Lua 脚本读取 lrange 结果的第一个字节

redis - 使用 Jredisearch 创建索引时添加前缀

node.js - 用于 NodeJS 应用程序的 Hazelcast 与 Redis(或 RedisLabs)

php - Magento:如何将商店设置转移到默认范围?

google-app-engine - Google App engine-Redislabs Go运行时生产报错-无效内存地址或nil指针解引用

Magento - 将默认过滤器添加到产品集合中