docker搭建redis集群主从,哨兵模式(一主,二从,三哨兵)

11 篇文章 1 订阅
4 篇文章 0 订阅

首先拉取redis镜像

docker pull redis

拉取完成后运行redis容器,

运行主节点

docker run --name redis-6379 -p 6379:6379 -v /home/redis/master/data:/data  -d redis redis-server --appendonly yes

运行从节点

docker run --name redis-6380 -p 6380:6379 -v /home/redis/redis6380/data:/data  -d redis  redis-server
docker run --name redis-6381 -p 6381:6379 -v /home/redis/redis6381/data:/data  -d redis  redis-server

3个容器都运行起来后用docker inspect 容器id命令查看主节点内网ip

docker inspect redis-6379

在这里插入图片描述

找到这个就是内网ip,记下来

分别进入6380 6381容器内 执行

docker exec -it redis-6380 /bin/bash
redis-cli
SLAVEOF 172.18.0.2 6379

在这里插入图片描述

info replication

在这里插入图片描述

两个容器内的操作相同

这时候主从配置就完成了

进入主节点查看

在这里插入图片描述
出现这个就说明主从配置完成了

接下来配置哨兵

Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移, 以及选择哪个从服务器作为新的主服务器。

虽然 Redis Sentinel 释出为一个单独的可执行文件 redis-sentinel , 但实际上它只是一个运行在特殊模式下的 Redis 服务器, 你可以在启动一个普通 Redis 服务器时通过给定 --sentinel 选项来启动 Redis Sentinel 。

首先cd到redis目录
执行

touch sentinel.conf && touch log.txt

在这里插入图片描述

然后编辑sentinel.conf

vim sentinel.conf

输入

sentinel monitor mymaster 172.18.0.2 6379 1
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
#添加为后台运行
daemonize yes
#指定日志目录
logfile "/log.txt"

第一行配置指示 Sentinel 去监视一个名为 mymaster 的主服务器, 这个主服务器的 IP 地址为 172.18.0.2 , 端口号为 6379 , 而将这个主服务器判断为失效至少需要 1 个 Sentinel 同意 (只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)。

down-after-milliseconds 选项指定了 Sentinel 认为服务器已经断线所需的毫秒数。
如果服务器在给定的毫秒数之内, 没有返回 Sentinel 发送的 PING 命令的回复, 或者返回一个错误, 那么 Sentinel 将这个服务器标记为主观下线(subjectively down,简称 SDOWN )。
不过只有一个 Sentinel 将服务器标记为主观下线并不一定会引起服务器的自动故障迁移: 只有在足够数量的 Sentinel 都将一个服务器标记为主观下线之后, 服务器才会被标记为客观下线(objectively down, 简称 ODOWN ), 这时自动故障迁移才会执行。

将服务器标记为客观下线所需的 Sentinel 数量由对主服务器的配置决定。
parallel-syncs 选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就越长。

保存配置文件,然后用docker cp 命令把文件分别拷贝到redis容器下根目录 /

在容器内部执行命令启动哨兵

redis-sentinel /sentinel.conf

这里我们选择部署3个哨兵,上面的操作需要在3个redis容器中都执行一编

完成后,我们进入一个redis容器中,查看哨兵状态

执行
在这里插入图片描述

docker exec -it redis-6379 /bin/bash
redis-cli -p 26379
info

在这里插入图片描述
最终如果看到上面图中的信息就说明成功了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值