Redis high availability and load balancing

28,864

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.

Share:
28,864

Related videos on Youtube

Mat
Author by

Mat

Updated on September 18, 2022

Comments

  • Mat
    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
    Nathan Basanese over 8 years
    // , Mat, did it work?
  • Kim
    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
    Pierre.Vriens about 8 years
    ok, 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
    Adam Lassek over 5 years
    The question specifically mentions load balancing, which Sentinel doesn't do. You should at least address that in your comment.