docker搭建redis+sentinel主从哨兵集群

docker搭建redis+sentinel主从哨兵集群

一:docker安装redis搭建主从

1.Master配置步骤
(1)主从服务器分别安装redis 镜像

docker pull redis

(2)修改redis配置文件

mkdir -p /data/redis/6379/conf
mkdir -p /data/redis/6379/data
touch /data/redis/6379/conf/redis.conf
echo "appendonly yes"  >> /data/redis/6379/conf/redis.conf

(3)编写master启动脚本

docker run --network host --name redis6379 -v /data/redis/6379/data:/data -v /data/redis/6379/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --port 6379

2.Slave1配置步骤
(1)修改redis配置文件

mkdir -p /data/redis/6380/conf
mkdir -p /data/redis/6800/data
touch /data/redis/6380/conf/redis.conf
echo "appendonly yes"  >> /data/redis/6380/conf/redis.conf

(2)编写master启动脚本

docker run --network host --name redis6380 -v /data/redis/6380/data:/data -v /data/redis/6380/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --port 6380 --slaveof 192.168.243.4 6379

3.Slave2配置步骤
(1)修改redis配置文件

mkdir -p /data/redis/6381/conf
mkdir -p /data/redis/6801/data
touch /data/redis/6381/conf/redis.conf
echo "appendonly yes"  >> /data/redis/6381/conf/redis.conf

(2)编写master启动脚本

docker run --network host --name redis6381 -v /data/redis/6381/data:/data -v /data/redis/6381/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --port 6381 --slaveof 192.168.243.4 6379

4.测试主从
(1)进入master

docker exec -it redis6379 redis-cli
set test 1

(2)进入slave1

docker exec -it redis6380 redis-cli -p 6380
get test

在这里插入图片描述

二 配置sentinel集群

1.配置master
(1)创建配置文件

mkdir /data/redis/6379/sentinel
mkdir /data/redis/6379/sentinel/log
vi /data/redis/6379/sentinel/sentinel.conf
port 26379
dir "/var/log/sentinel"
logfile "/var/log/sentinel/26379.log"
sentinel monitor mymaster 192.168.243.4 6379 2 #这里暂时设置成2
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

(2)启动脚本

docker run -d --name sentinel26379 -v /data/redis/6379/sentinel/sentinel.conf:/conf/sentinel.conf -v /data/redis/6379/sentinel/log:/var/log/sentinel --network host redis redis-sentinel /conf/sentinel.conf

2.配置slave1
(3)创建配置文件

mkdir /data/redis/6380/sentinel
mkdir /data/redis/6380/sentinel/log
vi /data/redis/6380/sentinel/sentinel.conf
port 26380
dir "/var/log/sentinel"
logfile "/var/log/sentinel/26380.log"
sentinel monitor mymaster 192.168.243.4 6379 2 #这里暂时设置成2
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

(4)启动脚本

docker run -d --name sentinel26380 -v /data/redis/6380/sentinel/sentinel.conf:/conf/sentinel.conf -v /data/redis/6380/sentinel/log:/var/log/sentinel --network host redis redis-sentinel /conf/sentinel.conf

3.配置slave2
(5)创建配置文件

mkdir /data/redis/6381/sentinel
mkdir /data/redis/6381/sentinel/log
vi /data/redis/6381/sentinel/sentinel.conf
port 26381
dir "/var/log/sentinel"
logfile "/var/log/sentinel/26381.log"
sentinel monitor mymaster 192.168.243.4 6379 2 #这里暂时设置成2
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

(6)启动脚本

docker run -d --name sentinel26381 -v /data/redis/6381/sentinel/sentinel.conf:/conf/sentinel.conf -v /data/redis/6381/sentinel/log:/var/log/sentinel --network host redis redis-sentinel /conf/sentinel.conf

4.测试sentinel
(1)查看各自的信息

docker exec -it redis6381 redis-cli -p 6381
info replication

在这里插入图片描述
(2)关闭master,查看其他两台服务是否有一台变成master

docker stop redis6379或者进入master容器中,输入SHUTDOWN

在这里插入图片描述
此时观察master的sentinel日志

cat /data/redis/6379/sentinel/log/26379.log

在这里插入图片描述

发现此时redis6381成为新的master

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值