目录
反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库

在前面创建的 myredis 目录下新建 sentinel.conf文件,名字绝不能错!
- [root@sql myredis]# vim sentinel.conf
- sentinel monitor mymaster 127.0.0.1 6379 1
-
- # 其中mymaster为监控对象起的服务器名称(可自定义), 1 为至少有多少个哨兵同意迁移的数量。
使用 slaveof

执行:redis-sentinel /myredis/sentinel.conf

- 1.# 创建脚本
- [root@sql myredis]# vim /myredis/sentinel.sh
- redis-sentinel /myredis/sentinel.conf
-
- 2.# 后台运行脚本,并输出到指定文件(执行后会自动生成文件)
- [root@sql myredis]# nohup bash /myredis/sentinel.sh >> /myredis/sentinel.log 2>&1 &
-
- 3.# 查看脚本是否运行
- [root@sql myredis]# ps -ef | grep sentinel
-
- 4.# 查看哨兵模式输出的信息
- [root@sql myredis]# cat sentinel.log
当主机挂掉,从机选举中产生新的主机:
(大概10秒左右可以看到哨兵窗口日志,切换了新的主机)
哪个从机会被选举为主机呢?根据优先级别:replica-priority
原主机重启后会变为从机。


原主机变为80的从机:

由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。

优先级在redis.conf中默认:replica-priority 100,值越小优先级越高
- # 可以分别在79/80/81的配置文件添加 replica-priority ,赋予不同的值
- [root@sql myredis]# cat redis6379.conf
- include /myredis/redis.conf
- pidfile "/var/run/redis_6379.pid"
- port 6379
- dbfilename "dump6379.rdb"
- replica-priority 10
- # Generated by CONFIG REWRITE
- daemonize yes
- save 3600 1
- save 300 100
- save 60 10000
- user default on nopass sanitize-payload ~* &* +@all
- dir "/root"
-
-
- # 每次修改完配置文件记得杀掉进程再重新启动redis连接
偏移量是指获得原主机数据最全的
每个redis实例启动后都会随机生成一个40位的runid