永久性高可用,可以一次性管理多套集群
功能
1、监控 2、自动选主,切换(6381 slaveof no one) 3、2号从库(6382)指向新主库(6381) 4、应用透明 5、自动处理故障节点
sentinel搭建过程
mkdir /data/26380 cd /data/26380 vim sentinel.conf port 26380 dir "/data/26380" sentinel monitor mymaster 127.0.0.1 6380 1 ###mymaster为第一个集群名字,1表示在多台sentinel下,最少多少台sentinel投票,才表示主库宕机 sentinel down-after-milliseconds mymaster 5000 ###主库宕机5秒,开始切换 sentinel auth-pass mymaster 123 ###主库密码
启动
[root@db01 26380]# redis-sentinel /data/26380/sentinel.conf &>/tmp/sentinel.log &
如果有问题
1、重新准备1主2从环境 2、kill掉sentinel进程 3、删除sentinel目录下的所有文件 4、重新搭建sentinel
查看日志文件无error表示启动成功
[root@db01 26380]# tail -f /tmp/sentinel.log
停主库测试
[root@db01 26380]# redis-cli -p 6380 -a 123 shutdown 5秒钟之后主库切换至6381 [root@db01 26380]# tail -f /tmp/sentinel.log 1965:X 28 Oct 16:30:15.493 # +switch-master mymaster 127.0.0.1 6380 127.0.0.1 6381 [root@db01 26380]# redis-cli -p 6381 -a 123 info replication # Replication role:master
启动源主库(6380),看状态
6380为直接变为从库加入集群 [root@db01 26380]# redis-server /data/6380/redis.conf [root@db01 ~]# tail -f /tmp/sentinel.log 1965:X 28 Oct 16:34:32.334 # -sdown slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6381 1965:X 28 Oct 16:34:42.317 * +convert-to-slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6381
Sentinel管理命令
redis-cli -p 26380 PING :返回 PONG 。 SENTINEL masters :列出所有被监视的主服务器 SENTINEL slaves <master name> SENTINEL get-master-addr-by-name <master name> : 返回给定名字的主服务器的 IP 地址和端口号。 SENTINEL reset <pattern> : 重置所有名字和给定模式 pattern 相匹配的主服务器。 SENTINEL failover <master name> : 当主服务器失效时, 在不询问其他 Sentinel 意见的情况下, 强制开始一次自动故障迁移。