我正在使用Magento 1.9.0.1,托管我们的Magento缓存(AWS ElastiCache)的Redis服务器将不时出现故障。发生这种情况时,Magento会致命地出错,直到Redis再次可用为止。
这可能是一个很难快速回答的问题,但是我想知道的是,为什么Magento无法在无法连接到Redis而不是致命错误的情况下像缓存被禁用那样工作?
我不知道有任何设置或任何模块可以使Magento具备此功能,但从表面上看似乎并不困难。Magento用来local.xml
弄清楚如何连接到数据库以及缓存后端。然后,它连接到数据库并查看高速缓存选项,以了解是否使用高速缓存。如果数据库指示使用给定的缓存,它将切换一些标志(可能是全局变量或单例的属性),并将缓存后端用于其余请求。如果发生连接错误,Magento是否无法在该请求期间将其关闭?
慢速站点胜过致命错误。
编辑:显然有些人不明白我在问什么,或者实际上没有读过这篇文章。
当Redis用作主要缓存存储方法时,是否有模块可以使Magento能够正常运行而不会出现致命错误。
如果没有,有人能启发我为什么这不可能或很难吗?
这是一个很好的问题。我曾经遇到过同样的问题,也有同样的问题。为什么magento无法意识到Redis服务器无法正常工作,而是切换到传统的magento缓存,而不是致命地引发错误。
—
Vinu D
最简单的解决方案是对Redis进行ping操作的cron,如果没有答案,则将local.xml替换为使用文件缓存的变体。
—
Paul Grigoruta