Redis的高可用技术方案

引言: Redis是广为使用的缓存解决方案,本文将给出基于Sequential的高可用方案,自动进行主从的切换,在master节点down机之后,透明的进行切换。

主从节点的设置方案

设置主节点redis.conf

-* auth 123456*
 master-slave节点之间的主从认证信息, 主从保持一致即可
-修改日志路径
logfile “/var/log/redis-slave.log”

设置slave节点

-设置master节点
slaveof 127.0.0.1 6379
 -设置auth认证密码
auth 123456

启动master节点

Redis的高可用技术方案

在master节点写入若干数据

Redis的高可用技术方案

启动redis的slave节点

redis-server slave-redis.conf
 slave redis启动的日志信息:
Redis的高可用技术方案

测试slave节点是否读取主节点数据

Redis的高可用技术方案

从slave节点中正确读取了我们之前在master节点中设置的信息。

Redis Sequential设置

redis-sequential.conf的设置:
- logfile: “/var/log/sentinel.log”
设置log文件的位置
- sentinel monitor mymaster 127.0.0.1 6379 1
设置monitor的redis的master节点地址与端口
- deamonize yes
设置为守护进程

这里IP为localhost, master为6380, slave节点为6379

启动

master启动日志:
Redis的高可用技术方案

slave节点启动日志

Redis的高可用技术方案

启动sequential服务

Redis的高可用技术方案

基于sequential-cli查看seqential状态

./sequential-cli
Redis的高可用技术方案

停用redis master节点之后的sequential

Redis的高可用技术方案

从上面可以看到当前监控的redis端口已经从6379切换到6380.sequential已经切换了redis的服务器。

总结

sentinel本质上监听Redis的集群,在Redis的master节点down掉之后,基于选举规则,选举新的master节点,从而实现了失效的转移,从而确保了服务的可用性,提升了Redis集群的高可用性。
 一般而言senitinel都是集群的方式来实现监听,避免sentinel成为单点,sentinel彼此之间通过选举来指定新的master节点。

下面关于Redis的文章您也可能喜欢,不妨参考下:

相关推荐