Redis哨兵为Redis提供了高可用性。实际上这意味着你能够使用哨兵模式建立一个能够不用人为干预而应对各类故障的Redis部署。
哨兵模式还提供了其余的附加功能,如监控,通知,为客户端提供配置。
下面是在宏观层面上哨兵模式的功能列表:
html
#后台启动 daemonize yes pidfile "/home/redis/redis/redisRun/redis_6379.pid" port 6379 timeout 0 tcp-keepalive 0 loglevel notice logfile "/home/redis/redislog/redis.log" databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename "dump.rdb" dir "/home/redis/redisdb" #若是作故障切换,不论主从节点都要填写密码且要保持一致 masterauth "123456" slave-serve-stale-data yes slave-read-only yes repl-disable-tcp-nodelay no slave-priority 98 #当前redis密码 requirepass "123456" appendonly yes # appendfsync always appendfsync everysec # appendfsync no no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes # Generated by CONFIG REWRITE
daemonize yes pidfile "/home/redis/redis/redisRun/redis_6379.pid" port 6379 timeout 0 tcp-keepalive 0 loglevel notice logfile "/home/redis/redislog/redis.log" databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename "dump.rdb" dir "/home/redis/redisdb" #主节点密码 masterauth "123456" slave-serve-stale-data yes slave-read-only yes repl-disable-tcp-nodelay no slave-priority 98 requirepass "123456" appendonly yes # appendfsync always appendfsync everysec # appendfsync no no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes # Generated by CONFIG REWRITE #配置主节点信息 slaveof 192.168.50.100 6379
port 26379 #1表示在sentinel集群中只要有两个节点检测到redis主节点出故障就进行切换,单sentinel节点无效(本身测试发现的) #若是3s内mymaster无响应,则认为mymaster宕机了 #若是10秒后,mysater仍没活过来,则启动failover sentinel monitor mymaster 192.168.50.100 6379 1 sentinel down-after-milliseconds mymaster 3000 sentinel failover-timeout mymaster 10000 daemonize yes #指定工做目录 dir "/home/redis/sentinel-work" protected-mode no logfile "/home/redis/sentinellog/sentinel.log" #redis主节点密码 sentinel auth-pass mymaster 123456 # Generated by CONFIG REWRITE
redis-server /home/redis/redis/redis.conf
redis-sentinel /home/redis/redis/sentinel.conf
redis-cli -h 192.168.50.100 -p 6379 -a 123456
info Replication
redis-cli -h 192.168.50.101 -p 6379 -a 123456
info Replication
redis-cli -h 192.168.50.102 -p 6379 -a 123456
info Replication
redis-cli -h 192.168.50.103 -p 6379 -a 123456
info Replication
redis-server /home/redis/redis/redis.conf查看节点信息,已经变成从节点Slave
redis-server /home/redis/redis/redis.conf查看sentinel状态: