Magento – Magento redis “read error on connection”

catalog-rulescm-redissessionmagento-enterpriseredis

I'm getting redis cache issue on apply the catalog rules from backend. The error is "read error on connection". Can anyone suggest the solution?

Best Answer

The solution (atleast for us) was to add a read_timeout config option in app/etc/local.xml where you have configured Redis cache for Magento.

<cache>
        <backend>Mage_Cache_Backend_Redis</backend>
        <backend_options>
                <server>127.0.0.1</server>
                <port>6379</port>
                <persistent></persistent>
                <database>0</database>
                <password></password>
                <force_standalone>0</force_standalone>
                <connect_retries>1</connect_retries>
                <read_timeout>10</read_timeout><!--add this-->
                <lifetimelimit>57600</lifetimelimit>
                <compress_data>0</compress_data>
        </backend_options>
</cache>

A few things to try:

Make sure persistent redis connections are not enabled. This can cause issues with Magento (check your local.xml file).

In your redis.conf file, make sure the timeout is set to zero "timeout 0".

Check your php.ini to make sure the default socket timeout is not set to some small positive number "default_socket_timeout".

Check the value of "/proc/sys/vm/overcommit_memory" on your server. If it's zero, try upping it to 1. This will allow Redis to commit changes to the disk backup if you're using it even if enough RAM is not present for a full commit.

I hope this will help you.