Our current Redis setup is a web application client that uses Jedis to connect directly, using one JedisPool to write to one Redis master and a second JedisPool to read from one Redis slave. The slave is configured to replicate the master.
We are in the process of moving to using JedisSentinelPool on the client and introducing Sentinel (s) to better manage fault tolerance. As far as I know, it seems that JedisSentinelPool only communicates with the currently selected master, so now all records / readings go to the master. Compared to earlier, when readings can be distributed to the slave.
Is there a way to use JedisSentinelPool to distribute reading in a slave for load balancing purposes? Or it needs to be implemented manually using JedisPool (as before). In this case, if the master failed, will JedisSentinelPool now point to the old slave (new master), and will JedisPool still stupidly point to the old slave and effectively the old slave (new master) will now process reads and writes?
Does Redis Sentinel (or otherwise) have any load balancing features (as opposed to fault tolerance)? We currently have only one slave, can I add more slaves to balance the load? And if so, what are the recommended configurations?
Any advice, real experience here would be appreciated.
source share