Redis sentinel 主从自动切换配置

配置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

你可能感兴趣的:(数据库,开发工具)