一、环境

        服务器1:192.168.80.100

        服务器2:192.168.80.101

        Redis 版本:redis-6.2.7

        备注:关闭服务器防火墙(踩过的坑)

systemctl disable firewalld

iptables -F

二、Redis配置

 1、服务器1:192.168.80.100

vim redis-6.2.7/redis.conf

#允许访问的 IP和端口
bind * -::*

#端口号
port 6379 

#开启保护模式
protected-mode yes

2、服务器2:192.168.80.101

vim redis-6.2.7/redis.conf

#限制访问IP
bind * -::*

#设置端口
port 6379

#开启保护模式
protected-mode yes

#跟随主服务器(重点)
slaveof 192.168.80.100 6379

重点:slaveof配置

三、哨兵配置

1、192.168.80.100

vim redis-6.2.7/sentinel.conf

#哨兵应用端口
port 26379

#关闭保护模式(此配置很重要,不配置将无法实现主从切换)
protected-mode no

#哨兵监控服务 当有1台宕机,即算宕机
sentinel monitor mymaster 192.168.80.100 6379 1


#选项指定了 Sentinel 认为服务器已经断线所需的毫秒数。(默认30秒)
sentinel down-after-milliseconds mymaster 3000

#向新的主节点发起复制操作的从节点个数,1轮询发起复制
sentinel parallel-syncs mymaster 1

#故障转移超时时间
sentinel failover-timeout mymaster 180000

2、192.168.80.101

#哨兵应用端口
port 26379

#关闭保护模式(此配置很重要,不配置将无法实现主从切换)
protected-mode no

#配置选举机制,哨兵时刻监控主服务器的6379端口,
#后面的“1”是当有一票认为它宕机以后就开始主从切换
sentinel monitor mymaster 192.168.80.100 6379 1


#选项指定了 Sentinel 认为服务器已经断线所需的毫秒数。(默认30秒)
sentinel down-after-milliseconds mymaster 3000

#向新的主节点发起复制操作的从节点个数,1轮询发起复制
sentinel parallel-syncs mymaster 1

#故障转移超时时间
sentinel failover-timeout mymaster 180000

注意:当前哨兵配置服务器是第一台的IP(192.168.80.100)

四、启动服务器测试

1、启动服务器

第一台Redis:./redis-6.2.7/src/redis-server /opt/redis/redis-6.2.7/redis.conf

第一台Sentinel:./redis-6.2.7/src/redis-sentinel /opt/redis/redis-6.2.7/sentinel.conf

第二台Redis:./redis-6.2.7/src/redis-server /opt/redis/redis-6.2.7/redis.conf

第二台Sentinel:./redis-6.2.7/src/redis-sentinel /opt/redis/redis-6.2.7/sentinel.conf

2、测试

1、Redis 哨兵状态

[root@192 src]# ./redis-cli -p 26379
127.0.0.1:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.80.100:6379,slaves=1,sentinels=2

关闭100服务器查看哨兵情况

127.0.0.1:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.80.101:6379,slaves=1,sentinels=2

2、写数据状态

关闭192.168.80.100服务器时

101服务写数据的对比

[root@192 src]# ./redis-cli -p 6379
127.0.0.1:6379> keys *
1) "a"
127.0.0.1:6379> set ab b                       
(error) READONLY You can't write against a read only replica.

#关闭100Redis前不允许写入数据


127.0.0.1:6379> set ab b
Error: Server closed the connection
127.0.0.1:6379> set ab b
OK

#关闭100Redis后允许写入数据

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐