redis哨兵集群部署

一、准备工作。

服务器
部署应用
10.159.62.213 主节点
10.159.62.214 从节点1
10.159.62.215 从节点2

 二、下载解压

三台机子同样的操作。

 https://www.cnblogs.com/qq1445496485/p/16111053.html

三、修改redis.conf文件

mkdir -p /usr/local/redis/log # 日志文件
mkdir -p /usr/local/redis/6379 # 指定数据库存放路径

1、修改213 redis.conf配置

# 开启守护进程
daemonize yes

# masterauth <master-password>
masterauth 123456

# 确保有1个从节点写入,且延时不超过10s,否则主节点会停止写入请求(防止数据丢失)
# redis版本5之前是 min-slaves-to-write 和 min-slaves-max-lag 10
# redis版本5开始是 min-replicas-to-write 和 min-replicas-max-lag 10
min-replicas-to-write 1
min-replicas-max-lag 10

# redis密码
requirepass 123456

# 开启AOF持久化功能
appendonly yes

# 设定日志文件路径
logfile "/usr/local/redis/log/redis.log"

2、修改214 215 的 redis.conf 配置

 就多了一个 replicaof <masterip> <masterport> 配置

# 开启守护进程
daemonize yes

# 修改IP和端口 replicaof <masterip> <masterport>
replicaof 10.159.62.213 6379 

# 主节点密码 masterauth <master-password>
masterauth 123456

# 确保有1个从节点写入,且延时不超过10s,否则主节点会停止写入请求(防止数据丢失)
# redis版本5之前是 min-slaves-to-write 和 min-slaves-max-lag 10
# redis版本5开始是 min-replicas-to-write 和 min-replicas-max-lag 10
min-replicas-to-write 1
min-replicas-max-lag 10

# redis密码
requirepass 123456

# 开启AOF持久化功能
appendonly yes

# 设定日志文件路径
logfile "/usr/local/redis/log/redis.log"

四、运行三台redis,查看主从信息

Redis 和 Sentinel,启动具体顺序为:Redis(主)-> Redis(从)->Redis(从)->Sentinel(1)->Sentinel(2)->Sentinel(3)

这里先运行redis,sentinel在下面

运行命令

cd /usr/local/redis/bin/
./redis-server redis.conf

 

 

 五、修改sentinel.conf文件

 三台机子修改一样

vi /usr/local/redis/bin/sentinel.conf
protected-mode no                                  #关闭保护模式
daemonize yes                                      #指定sentinel为后台启动
logfile "/usr/local/redis/log/sentinel.log"              #指定日志存放路径 
dir "/usr/local/redis/6379"                          #指定数据库存放路径
sentinel monitor mymaster 10.159.62.213 6379 2         #至少几个哨兵检测到主服务器故障了,才会进行故障迁移,全部指向masterIP
sentinel down-after-milliseconds mymaster 30000    #判定服务器down掉的时间周期,默认30000毫秒(30秒)
sentinel failover-timeout mymaster 180000         #故障转移的的最大超时时间为180000(180秒)
sentinel parallel-syncs mymaster 1              #新的master切换之后,同时有几个slave被切换到去连接新master,重新做同步,数字越低,花费的时间越多
sentinel auth-pass mymaster 123456  				#主节点密码

六、启动sentinel

cd /usr/local/redis/bin/
./redis-sentinel sentinel.conf

七、查看哨兵信息

 cd /usr/local/redis/bin/
 ./redis-cli -h 10.159.62.213 -p 26379 info Sentinel

 

 

 八、尝试在主节点上新增主键 并且在从节点上查看以及修改。

可以看见,在主节点上新增key之后,从节点是同步的。但是在从节点上不能新增、编辑、删除key。

 

九、故障模拟

1、把213的主节点停掉,查看sentinel.log日志。

2、首先214发现213下线,这是主观宕机(sdown);我们在sentinel.conf中设置了 sentinel monitor mymaster 10.159.62.213 6379 2 ,这里的2代表需要两个哨兵都认为主节点宕了才算是真正下线(客观宕机 odown),然后在进行选举。

接着215也发现了213下线,达到了2台,随后开始选举。

 3、重新查看哨兵信息 发现现在215是主节点

cd /usr/local/redis/bin/
redis-cli -p 26379 INFO Sentinel

 尝试去修改key对应的value值,发现213的机子已经不能修改了,而新的主节点 215是可以的。

 

 

posted @ 2022-06-30 16:16  云村的王子  阅读(284)  评论(0编辑  收藏  举报