Redis哨兵(Sentinel)模式搭建
Redis哨兵模式介绍,参考文档如下:
1、https://www.jianshu.com/p/06ab9daf921d
2、...
本文主要记录Redis哨兵(Sentinel)模式搭建步骤,以及遇到问题。
1、Redis配置
master
#设置服务器内网IP和127.0.0.1
bind ***.***.***.*** 127.0.0.1
#设置主节点密码与requirepass保持一致
masterauth "********"
slave
#设置服务器内网IP和127.0.0.1
bind ***.***.***.*** 127.0.0.1
# redis-master 的ip
slaveof master_ip 6379
# 从机只读模式默认是开启的:
slave-read-only yes
需注意:salveof 是旧版本,新版本 replicaof
replicaof master_ip 6379
replica-read-only yes
#设置从节点密码与requirepass保持一致,同时与主节点一致
masterauth "*******"
2、哨兵模式(sentinel.conf)配置
#设置服务器内网IP和127.0.0.1
bind ***.***.***.*** 127.0.0.1
# 禁止保护模式
protected-mode no
# 后台自动运行
daemonize yes
# 配置监听的主服务器,这里sentinel monitor代表监控,<master-name>代表服务器的名称,可以自定义,主服务器IP:master_ip,6379:主服务器端口,2代表只有两个或两个以上的哨兵认为主服务器不可用的时候,才会进行failover操作。
sentinel monitor <master-name> master_ip 6379 2
# sentinel author-pass定义服务的密码,<master-name>是服务名称,即上述语句名词,<password>是Redis服务器密码
sentinel auth-pass <master-name> <password>
# 设置Sentinel认为服务器已经断线所需的毫秒数
sentinel down-after-milliseconds <master-name> 50000
3、服务器安全组、防火墙配置
安全组,主要针对26379(即sentinel中配置端口)、6379(redis端口)
防火墙,需放开26379、6379 TCP端口
常用命令
windows
# 启动redis
.\redis-server.exe .\redis.conf
# 启动哨兵模式
.\redis-server.exe .\sentinel.conf --sentinel
linux
# 启动redis
./redis-server redis.conf
# 启动哨兵模式
./redis-sentinel sentinel.conf
sudo -u redis ./src/redis-sentinel sentinel.conf
4、哨兵模式调试常用命令
127.0.0.1:6379> info replication
# Replicationrole:slave
master_host:***.***.***.*** master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_repl_offset:42888
master_link_down_since_seconds:28
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:4def8105247ae24ef8b639dcc34486a097bdf667
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:42888
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:36592
repl_backlog_histlen:6297
[root@ redis]# redis-cli -h 127.0.0.1 -p 16379
127.0.0.1:16379> info sentinel
# Sentinelsentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0master0:name=mymaster,status=ok,address=172.19.246.75:6379,slaves=1,sentinels=2
127.0.0.1:16379>