与magento CE 1.8连接时出现随机redis错误
我将magento配置为使用redis后端缓存运行,并且在随机情况下遇到一些连接错误 错误堆栈跟踪如下所示:与magento CE 1.8连接时出现随机redis错误,magento,caching,redis,Magento,Caching,Redis,我将magento配置为使用redis后端缓存运行,并且在随机情况下遇到一些连接错误 错误堆栈跟踪如下所示: a:4:{i:0;s:24:"read error on connection";i:1;s:1653:"#0 /var/www/mage/lib/Credis/Client.php(440): Credis_Client->__call('select', Array) #1 /var/www/mage/lib/Cm/Cache/Backend/Redis.php(117): C
a:4:{i:0;s:24:"read error on connection";i:1;s:1653:"#0 /var/www/mage/lib/Credis/Client.php(440): Credis_Client->__call('select', Array)
#1 /var/www/mage/lib/Cm/Cache/Backend/Redis.php(117): Credis_Client->select(0)
#2 /var/www/mage/lib/Zend/Cache.php(153): Cm_Cache_Backend_Redis->__construct(Array)
#3 /var/www/mage/lib/Zend/Cache.php(94): Zend_Cache::_makeBackend('Cm_Cache_Backen...', Array, true, true)
#4 /var/www/mage/app/code/core/Mage/Core/Model/Cache.php(137): Zend_Cache::factory('Varien_Cache_Co...', 'Cm_Cache_Backen...', Array, Array, true, true, true)
#5 /var/www/mage/app/code/core/Mage/Core/Model/Config.php(1348): Mage_Core_Model_Cache->__construct(Array)
#6 /var/www/mage/app/Mage.php(463): Mage_Core_Model_Config->getModelInstance('core/cache', Array)
#7 /var/www/mage/app/code/core/Mage/Core/Model/App.php(401): Mage::getModel('core/cache', Array)
#8 /var/www/mage/app/code/core/Mage/Core/Model/App.php(295): Mage_Core_Model_App->_initCache(Array)
#9 /var/www/mage/app/code/core/Mage/Core/Model/App.php(337): Mage_Core_Model_App->baseInit(Array)
#10 /var/www/mage/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#11 /var/www/mage/index.php(90): Mage::run('', 'store')
#12 {main}";s:3:"url";s:1:"/";s:11:"script_name";s:10:"/index.php";}
这是由核心magento函数和我的自定义代码引起的。
特别是我的一个助手,我用这种方式使用缓存:
public function getSomething($id)
{
if ($cacheResult) {
$cache = Mage::app()->getCacheInstance();
$cacheKey = "something_".$id;
$value = $cache->load($cacheKey);
if ($value) {
$value = unserialize($value);
} else {
$value = '';
}
} else {
$value = '';
}
if(is_array($value)) {
$result = $value;
} else {
$result = $this->api->getSomething($id);
if ($cacheResult) {
$cache->save(serialize($result), $cacheKey);
}
}
return $result;
}
你知道为什么会出现这些错误吗?
它与我的代码关联吗?它应该写得不同吗
它在VPS上运行:
- vCPU 2000 MHz x 2 vCore
- 2GB内存(4GB升压)
- 硬盘RAID 10
此外,您可以尝试直接在服务器中擦除密钥,因为有时数据并不完全一致。但我使用本机magento模块,无需安装其他扩展,因为CE 1.8尝试擦除redis中的所有内容,但没有帮助。错误率非常高,现在上个小时大约有90个请求,有10个错误报告。