为什么Redis失败时Magento无法关闭缓存


9

我正在使用Magento 1.9.0.1,托管我们的Magento缓存(AWS ElastiCache)的Redis服务器将不时出现故障。发生这种情况时,Magento会致命地出错,直到Redis再次可用为止。

这可能是一个很难快速回答的问题,但是我想知道的是,为什么Magento无法在无法连接到Redis而不是致命错误的情况下像缓存被禁用那样工作?

我不知道有任何设置或任何模块可以使Magento具备此功能,但从表面上看似乎并不困难。Magento用来local.xml弄清楚如何连接到数据库以及缓存后端。然后,它连接到数据库并查看高速缓存选项,以了解是否使用高速缓存。如果数据库指示使用给定的缓存,它将切换一些标志(可能是全局变量或单例的属性),并将缓存后端用于其余请求。如果发生连接错误,Magento是否无法在该请求期间将其关闭?

慢速站点胜过致命错误。

编辑:显然有些人不明白我在问什么,或者实际上没有读过这篇文章。

  1. 当Redis用作主要缓存存储方法时,是否有模块可以使Magento能够正常运行而不会出现致命错误。

  2. 如果没有,有人能启发我为什么这不可能或很难吗?


这是一个很好的问题。我曾经遇到过同样的问题,也有同样的问题。为什么magento无法意识到Redis服务器无法正常工作,而是切换到传统的magento缓存,而不是致命地引发错误。
Vinu D

1
@Tyler V,投票重新开启,看不出这是不清楚或偏离主题似乎是一个有趣的问题,一个有效的问题。我不知道有什么模块可以解决这个问题,Magento可能不是开箱即用的功能,而是需要为此开发一个模块。我猜您在开发模块之前需要研究如何在Magento中调用缓存。
冬青2015年

最简单的解决方案是对Redis进行ping操作的cron,如果没有答案,则将local.xml替换为使用文件缓存的变体。
Paul Grigoruta

Answers:


2

您所要做的只是解决3个问题/问题:

  1. 为什么Redis失败?交通繁忙,错误,内存问题,网络?
  2. 连接超时和重试设置?
  3. 您的堆栈是最新的吗?

显然,您可以更改一些代码并放置逻辑而不是错误。

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.