Redis high availability and load balancing
Solution 1
Redis Sentinel will allow you to run multiple instances of redis and handles failover for you. http://redis.io/topics/sentinel
Solution 2
An obvious solution to loadbalance redis is to use sentinel.
As far as I can see predis does not support sentinel as of now. See:
https://github.com/nrk/predis/issues/131
A possible solution can be Redis sentinel + HAProxy failover if you want to keep using predis.
Related videos on Youtube
Mat
Updated on September 18, 2022Comments
-
Mat over 1 year
I'm using Redis for some time and now we want to move to a redundant cluster which would be fault tolerant, highly available and load balanced.
I principally use Redis for some PHP web application which stores some process status information (I'm using PHPRedis for this) and I would like to use it also for PHP session store in a load balanced cluster.
I already have a Load Balancing that I use for Nginx and MySQL (based on pfSense).
I saw that Redis Cluster exists for Redis 3, but I also read some comments about the fact that it is not ready for production, others that tells that Redis cannot do a complete master/master cluster configuration.
What is your advise?
- Try Redis Cluster
- Move to another key=value engine (CouchDB? Memcached? Others?)
- Don't mind about load balancing and use only one node of the cluster per time, and having a manual failover, as I don't use persistence
- Other ideas?
Thank you very much for your help!
-
Nathan Basanese over 8 years// , Mat, did it work?
-
Kim about 8 years@Pierre.Vriens maybe I am not following you correctly but as far as I see the question is how to loadbalance redis. I am pointing out that an obvious solution like sentinel will not work when using predis. Possibly that was not clear from my answer.
-
Pierre.Vriens about 8 yearsok, that helps a bit to better understand your answer. I think you should edit it to somehow integrate that in it also (and then delete your comment).
-
Adam Lassek over 5 yearsThe question specifically mentions load balancing, which Sentinel doesn't do. You should at least address that in your comment.