哨兵模式建立在主从模式之上,搭建哨兵前先建好主从模式。
哨兵也要搭建集群,一主二从共有3个reids进程、3个哨兵进程。
三台服务器都配置哨兵文件,并启动哨兵,先配置好一台服务器的哨兵配置文件,然后把配置文件复制到其他服务器即可。

1.设置配置文件路径,并下载配置文件

①创建新目录,原生的sentinel.conf做备份,启动只用以下路径的配置文件。
mkdir /home/admin/redis/redis-5.0.7/redisSentinel
②下载配置文件
方法一:直接远程复制配置好的文件,配置文件里只需改redis主机的IP地址和端口号,和哨兵的myid
scp -r root@192.168.60.83:/home/admin/redis/redis-5.0.7/redisSentinel/* /home/admin/redis/redis-5.0.7/redisSentinel/
方法二:想自己改的用下面这个命令下载配置文件:
wget http://download.redis.io/redis-stable/sentinel.conf

2.修改哨兵配置文件

①修改配置文件
vi /home/admin/redis/redis-5.0.7/redisSentinel/sentinel.conf
## 修改1:让sentinel服务后台运行
daemonize yes
## 修改2:增加日志文件路径
logfile “/home/admin/redis/redis-5.0.7/sentinel.log”
## 修改3:增加主服务信息和需要进行选举的法定个数(2代表只有2个哨兵节点同时认为master节点时效时,才算真正的失效)
把sentinel monitor mymaster 127.0.0.1 6379 2改成
sentinel monitor mymaster 192.168.60.83 6379 2
②如果配置文件是复制过来的,还需要注释哨兵的myid,启动哨兵后生成新的myid。
不然哨兵的myid相同,哨兵间无法通信。
image.png
③查看修改后的配置文件
cat sentinel.conf |grep -v “#”|grep -v “^$”
image.png

3.运行哨兵

①启动三台redis服务(先启主机,后启从机)
cd /usr/local/bin/
./redis-server /home/admin/redis/redis-5.0.7/theRedisConf/redis.conf
②启动三台哨兵服务(先启主机,后启从机)
cd /usr/local/bin/
./redis-sentinel /home/admin/redis/redis-5.0.7/redisSentinel/sentinel.conf

4.全部启动后查看哨兵的配置文件

cat /home/admin/redis/redis-5.0.7/redisSentinel/sentinel.conf |grep -v “#”|grep -v “^$”
image.png

5.校验哨兵是否启动成功

①连接哨兵:
redis-cli -p 26379或者进到src下执行 ./redis-cli -p 26379
②查询当前节点状态:
info sentinel

  1. 127.0.0.1:26379> info sentinel
  2. # Sentinel
  3. sentinel_masters:1
  4. sentinel_tilt:0
  5. sentinel_running_scripts:0
  6. sentinel_scripts_queue_length:0
  7. sentinel_simulate_failure_flags:0
  8. master0:name=mymaster,status=ok,address=192.168.60.83:6379,slaves=2,sentinels=3

③查看主节点状态
sentinel master mymaster
④查看从节点状态
sentinel slaves mymaster
⑤查看所有哨兵状态
sentinel sentinels mymaster

六、SLAVEOF NO ONE :

redis从属服务器执行这个命令,将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。
测试1:开着三个哨兵,t-redis3执行变主节点命令,马上查询信息变为主节点,没有从节点,同时查询t-redis1仍然是主节点,t-redis3仍是它的从节点。过不到一分钟查看t-redis3变回t-redis1的从节点。
image.png
测试2:关闭所有哨兵,t-redis3执行变主节点命令,马上查询信息变为主节点,没有从节点,同时查询t-redis1仍然是主节点,t-redis3不再是它的从节点。过一分钟查看t-redis3没有变回t-redis1的从节点。
image.png
image.png
重启t-redis3服务后,查看t-redis1,t-redis3成为了t-redis1的从节点,查看t-redis3显示为t-redis1的从机。
(因为t-redis3的配置文件中将t-redis1设置为主节点,重启t-redis3的服务后将回归为t-redis1的从节点)
image.png
image.png

七、测试哨兵模式下去掉某个从机

①关闭所有哨兵服务
②关闭t-redis3的redis服务
③查看哨兵日志