We had a problem with resque and redis-sentinel. Since resque apparently uses pipelined requests, I aliased the pipelined call and also added timeouts to calls.
Also, in some cases (i.e. with redis-scheduler) the Redis:CommandError error message is prepended by another error string, so it looked like this:
ERR Error running script (call to f_8f4a4e422bfa8f9a0931e350d6e30b1c3ce97c33): @user_script:1: @user_script: 1: -READONLY You can't write against a read only slave
So, I did a more relaxed check on the error message.
We had a problem with resque and redis-sentinel. Since resque apparently uses pipelined requests, I aliased the pipelined call and also added timeouts to calls.
Also, in some cases (i.e. with redis-scheduler) the Redis:CommandError error message is prepended by another error string, so it looked like this: ERR Error running script (call to f_8f4a4e422bfa8f9a0931e350d6e30b1c3ce97c33): @user_script:1: @user_script: 1: -READONLY You can't write against a read only slave
So, I did a more relaxed check on the error message.