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节点
在master节点写入若干数据
启动redis的slave节点
redis-server slave-redis.conf
slave redis启动的日志信息:
测试slave节点是否读取主节点数据
从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启动日志:
slave节点启动日志
启动sequential服务
基于sequential-cli查看seqential状态
./sequential-cli
停用redis master节点之后的sequential
从上面可以看到当前监控的redis端口已经从6379切换到6380.sequential已经切换了redis的服务器。
总结
sentinel本质上监听Redis的集群,在Redis的master节点down掉之后,基于选举规则,选举新的master节点,从而实现了失效的转移,从而确保了服务的可用性,提升了Redis集群的高可用性。
一般而言senitinel都是集群的方式来实现监听,避免sentinel成为单点,sentinel彼此之间通过选举来指定新的master节点。
下面关于Redis的文章您也可能喜欢,不妨参考下: