Redis高可用方案之Sentinel
很多网站都使用Redis作为自己的缓存系统,网站要做到高可用,它使用的缓存系统自然也必须支持高可用,这里就介绍一下Redis的高可用方案Sentinel。 Sentinel是Redis官方提供的一种高可用方案(除了Sentinel,Redis Cluster是另一种方案),它可以自动监控Redis master/slave的运行状态,如果发现master无法访问了,就会启动failover把其中一台可以访问的slave切换为master,并且通过pub/sub事件通知Redis客户端新的master的ip地址。 支持Sentinel的Redis客户端(例如java得Jedis)会在连接Redis服务器的时候向Sentinel询问master的ip,并且会在收到master切换的pub/sub事件后自动重新连接到新的master。 对调用Redis客户端的业务系统来说,这些都是完全透明的。 下图是redis sentinel的部署和运行机制 下图是master宕机后,failover的发起流程 现在我们来实战一下,我们的例子中有3台server,3个sentinel,1个master和2个slave。由于我们只有3台server,所以每个sentinel和一个master或者slave放在一个server上。采用的部署结构如下图所示 安装Redis Redis安装路径:~