Troubleshooting Redis as a Socket – Common Issues and Fixes

redis

I'm trying to setup Magento to communicate with Redis via a socket. I've used the following configuration:

...
 <server>/var/tmp/redis.sock</server>
<port>0</port>
...
 <persistent>0</persistent>

Before implementing, I disable the cache, flush the cache, restart the service and access the website but get a exception error: (yes I bumped up the connect_retries to 11 to see if it would make a difference)

a:4:{i:0;s:45:"Connection to Redis failed after 11 failures.";i:1;s:2137:"      
/home/website/public_html/lib/Credis/Client.php(362): Credis_Client->connect()
/home/website/public_html/lib/Credis/Client.php(362): Credis_Client->connect()
/home/website/public_html/lib/Credis/Client.php(362): Credis_Client->connect()
/home/website/public_html/lib/Credis/Client.php(362): Credis_Client->connect()
-
/home/website/public_html/lib/Credis/Client.php(440):  Credis_Client->__call('select', Array)
/home/website/public_html/lib/Cm/Cache/Backend/Redis.php(117): Credis_Client->select(0)
/home/website/public_html/lib/Zend/Cache.php(153): Cm_Cache_Backend_Redis->__construct(Array)

/home/website/public_html/lib/Zend/Cache.php(94): Zend_Cache::_makeBackend('Cm_Cache_Backen...', Array, true, true)
 /home/website/public_html/app/code/core/Mage/Core/Model/Cache.php(137): Zend_Cache::factory('Varien_Cache_Co...', 'Cm_Cache_Backen...', Array, Array, true, true, true)
 /home/website/public_html/app/code/core/Mage/Core/Model/Config.php(1348): Mage_Core_Model_Cache->__construct(Array)
/home/website/public_html/app/Mage.php(463): Mage_Core_Model_Config->getModelInstance('core/cache', Array)
/home/website/public_html/app/code/core/Mage/Core/Model/App.php(401): Mage::getModel('core/cache', Array)
/home/website/public_html/app/code/core/Mage/Core/Model/App.php(295): Mage_Core_Model_App->_initCache(Array)
/home/website/public_html/app/code/core/Mage/Core/Model/App.php(337): Mage_Core_Model_App->baseInit(Array)
/home/website/public_html/app/Mage.php(684): Mage_Core_Model_App->run(Array)
/home/website/public_html/index.php(87): Mage::run('', 'store')
 {main}";s:3:"url";s:43:"/eng/4gb-ddr2-400-ecc-rdimm-343057-b21.html";s:11:"script_name";s:10:"/index.php";}

The permissions for the Redis socket file is redis:redis listed as 0 bytes,

Redis is working fine through the TCP connection, so is there something I'm missing?

Best Answer

Configure your redis conf file (/etc/redis.conf)

unixsocket /var/tmp/redis.sock
unixsocketperm 777

I have the local config like this

<cache>
  <backend>Mage_Cache_Backend_Redis</backend>
  <backend_options>
    <server>/var/tmp/redis-multi_path/to/my.sock</server> 
    <port>1</port>
    <persistent></persistent> 
    <password></password> 
    <force_standalone>0</force_standalone>  
    <connect_retries>1</connect_retries>    
    <read_timeout>10</read_timeout>         
    <automatic_cleaning_factor>0</automatic_cleaning_factor> 
    <compress_data>1</compress_data>  
    <compress_tags>1</compress_tags>  
    <compress_threshold>20480</compress_threshold>  
    <compression_lib>gzip</compression_lib> 
    <use_lua>0</use_lua> 
  </backend_options>
</cache>
Related Topic