配置sentinel至少需要两个redis服务实例
127.0.0.1 6380 master
127.0.0.1 6381 slave1
127.0.0.1 6382 slave2
127.0.0.1 6383 slave3
主从配置,在从数据库添加 slaveof 127.0.0.1 6380
# 查看主从状态 info replication
redis-cli -h 127.0.0.1 -p 6380 -a password info Replication
# 查询Sentinel状态 info sentinel
redis-cli -h 127.0.0.1 -p 26379 -a password info Sentinel
看到status=ok 说明正常sentinel配置
创建sentinel配置文件
vim /usr/local/redis-master/sentinel.conf
port 26379
#sentinel需要监控的master信息
sentinel monitor master 127.0.0.1 6380 2
#master password
sentinel down-after-milliseconds master 5000
#master被当前sentinel实例认定为“失效”(SDOWN)的间隔时间
sentinel failover-timeout master 60000
sentinel auth-pass master password
sentinel config-epoch master 12
创建其他两个配置文件 端口分别为26479 26579
/usr/local/redis-slave1/sentinel.conf
/usr/local/redis-slave2/sentinel.conf
启动sentinel
nohup /usr/local/redis-master/redis-server /usr/local/redis-master/sentinel.conf --sentinel &
nohup /usr/local/redis-slave1/redis-server /usr/local/redis-slave1/sentinel.conf --sentinel &
nohup /usr/local/redis-slave2/redis-server /usr/local/redis-slave2/sentinel.conf --sentinel &
主从切换测试关掉主命令redis-cli -h 127.0.0.1 -p 6380 -a password shutdown
自动切换后sentinel、主、从的配置文件都会发生改变,会在配置文件的最后增加信息
哨兵启动和主数据库建立连接后,会定时执行下面3个操作
1、每10秒哨兵会向主数据库和从数据库发送INFO命令
2、每2秒哨兵会向主数据库和从数据库的_sentinel_:hello 频道发送自己的信息
3、每1秒哨兵会向主数据库、从数据库和其他哨兵节点发送PING命令
redis命令
slaveof no one 全当前数据库停止接收其他数据库同步并转换成主数据库
min-slaves-to-write 3 只有三个或三个以上从数据库连接到主数据库时,主数据库才是可写的,否则会返回错误
repl-diskless-sync yes 启用无硬盘复制
slave-priority 100 slave优先级
转载于:https://my.oschina.net/direnjie/blog/542209