【哨兵模式】

哨兵模式

作用

在后台监控主机是否故障,故障了根据投票数自动将从库转换为主库

复制延时

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

选举策略

1、选择优先级靠前的服务器。优先级的配置在 redis.conf 文件中的 replica-priority 配置,默认 为 100,值越小优先级越高。
2、选择偏移量最大的。偏移量是指获得原主机数据最全的。
3、选择 runid 最小的从服务器。每个redis实例启动后都会随机生成一个40位的runid。

配置

#首先停止redis服务
redis-cli shutdown

#然后再重新启动三台 Redis 服务器,并实现一主双从。
#最后在 /rediscluster 目录下新建 sentinel.conf 文件,文件名称不能写错,必须叫这个名称。
[root@localhost rediscluster]# vim sentinel.conf
#内容如下:
sentinel monitor redismaster 192.168.40.128 6379 1
参数说明:
monitor:监控
redismaster:为监控对象起的服务名称
1:为至少有多个个哨兵同意迁移的数量

#启动sentinel
[root@localhost rediscluster]# redis-sentinel sentinel.conf 
#再启动6379、6380、6381
[root@localhost rediscluster]# redis-server redis_6379.conf 
[root@localhost rediscluster]# redis-server redis_6380.conf 
[root@localhost rediscluster]# redis-server redis_6381.conf
192.168.40.128:6380> slaveof 192.168.40.128 6379
OK
192.168.40.128:6381> slaveof 192.168.40.128 6379
OK

#监控到了6380和6381
1546:X 17 Jul 14:57:11.422 * +convert-to-slave slave 192.168.40.128:6380 192.168.40.128 6380 @ redismaster 192.168.40.128 6379
1546:X 17 Jul 14:57:13.484 * +convert-to-slave slave 192.168.40.128:6381 192.168.40.128 6381 @ redismaster 192.168.40.128 6379

#将6379shutdown
192.168.40.128:6379> shutdown

#将6380变为主,在6379上创建的数据还在
1546:X 17 Jul 15:02:05.174 * +failover-state-send-slaveof-noone slave 192.168.40.128:6380 192.168.40.128 6380 @ redismaster 192.168.40.128 6379
192.168.40.128:6380> info replication
# Replication
role:master

#重启6379
[root@localhost rediscluster]# redis-server redis_6379.conf 
[root@localhost rediscluster]# redis-cli -h 192.168.40.128 -p 6379
#变为从,主为6380
192.168.40.128:6379> info replication
# Replication
role:slave
master_host:192.168.40.128
master_port:6380

猜你喜欢

转载自blog.csdn.net/HealerCCX/article/details/131767390