docker redis哨兵模式(sentinel)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: docker redis哨兵模式(sentinel)

redis集群-哨兵模式(sentinel)

哨兵模式:基于redis主从复制,增加sentinel服务用于监听服务状态,并在发生异常时重新选取主服务器 使用版本,redis6.25

配置文件

下面只列出主要配置,需查看详细配置请查看关联项目 redis登陆密码如配置则需要统一

master配置

requirepass 登陆密码
# 发生故障时会重新指定主服务器,所以需要指定密码
masterauth 主服务器登陆密码

slave配置

在docker环境执行,避免重复修改配置文件所以使用redis01(机器名),此处别名对应docker启动时指定的别名

requirepass 登陆密码
masterauth 主服务器登陆密码
# 指定主服务器
replicaof redis01 6379

sentinel配置

mymaster 为sentinel监控的别名,

sentinel monitor mymaster redis01 6379 2
sentinel auth-pass mymaster sbsb1234
# 6.2之后才支持使用机器名默认是关闭,此处打开
SENTINEL resolve-hostnames yes

docker 启动

结构为3个redis节点,1主2从,3个sentinel服务

准备环境

# 下载redis最新镜像
docker pull redis
#新建一个网络使其它节点连接此网络,避免通信问题
docker network create testnet

启动redis服务

命令说明 *. -p 6380:6379 指定外内端口 *. --name redis01 指定容器名称 *. -v /home/docker/redis/master.conf:/etc/redis/redis.conf 映射配置文件 *. --privileged=true 提升docker容器权限避免容器中操作权限不够 *. --network testnet 指定容器使用网络 *. --network-alias redis01 指定网络中机器名 *. -d redis 后台执行容器 *. redis-server /etc/redis/redis.conf 执行的cmd命令,指定配置文件否则不会使用映射配置文件

docker run -p 6380:6379 --name redis01 -v /home/docker/redis/master.conf:/etc/redis/redis.conf  --privileged=true --network testnet --network-alias redis01  -d  redis redis-server /etc/redis/redis.conf 
docker run -p 6381:6379 --name redis02 -v /home/docker/redis/slave.conf:/etc/redis/redis.conf  --privileged=true --network testnet --network-alias redis02  -d  redis redis-server /etc/redis/redis.conf 
docker run -p 6382:6379 --name redis03 -v /home/docker/redis/slave.conf:/etc/redis/redis.conf  --privileged=true --network testnet --network-alias redis03  -d  redis redis-server /etc/redis/redis.conf

启动完成后可使用redis客户端连接或使用命令行验证主从是否正常

# 查看主从配置信息
info replication

启动sentinel服务

命令说明 *. redis-server /etc/redis/sentinel.conf --sentinel 表示启动sentinel服务

docker run -p 26379:26379 --name sentinel01 -v /home/docker/redis/sentinel.conf:/etc/redis/sentinel.conf  --privileged=true --network testnet --network-alias sentinel01  -d  redis redis-server /etc/redis/sentinel.conf --sentinel
docker run -p 26380:26379 --name sentinel02 -v /home/docker/redis/sentinel.conf:/etc/redis/sentinel.conf  --privileged=true --network testnet --network-alias sentinel02  -d  redis redis-server /etc/redis/sentinel.conf --sentinel
docker run -p 26381:26379 --name sentinel03 -v /home/docker/redis/sentinel.conf:/etc/redis/sentinel.conf  --privileged=true --network testnet --network-alias sentinel03  -d  redis redis-server /etc/redis/sentinel.conf --sentinel

启动成功后可在主服务器控制台输入如下命令验证

# 执行休眠120s的任务
DEBUG SLEEP 120s
# 再次查看主从信息查看是否已一切换为从服务器
info replication

相关项目

https://gitee.com/MeiJM/spring-cram/tree/master/redis/redisConfig

参考资料

https://www.cnblogs.com/shenh/p/9714547.html

https://cloud.tencent.com/developer/article/1343834

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
3天前
|
NoSQL Redis Docker
Mac上轻松几步搞定Docker与Redis安装:从下载安装到容器运行实测全程指南
Mac上轻松几步搞定Docker与Redis安装:从下载安装到容器运行实测全程指南
14 0
|
3天前
|
存储 监控 NoSQL
Redis哨兵&分片集群
Redis哨兵&分片集群
7 0
|
3天前
|
NoSQL Linux Redis
本地虚拟机centos7通过docker安装主从redis3.2
本地虚拟机centos7通过docker安装主从redis3.2
10 0
|
4天前
|
监控 NoSQL 算法
深入浅出Redis(七):Redis的哨兵模式
深入浅出Redis(七):Redis的哨兵模式
|
13天前
|
NoSQL Redis Docker
使用docker安装redis
该文档介绍了如何使用Docker快速搭建Redis数据库,以便于Spring Boot学习。主要内容包括获取Redis镜像、创建容器、配置持久化存储目录和修改默认配置文件,以及检查和访问Redis容器服务。此外,还提到若需外部访问,需开启宿主机防火墙相应端口。注意,本教程不深入讲解Docker,若想深入学习Docker,建议另寻专门课程。
|
13天前
|
数据安全/隐私保护 Docker Sentinel
docker安装Sentinel
docker安装Sentinel
|
13天前
|
监控 NoSQL 算法
深入剖析Redis哨兵模式的原理和应用
Redis的哨兵模式是实现高可用性和自动故障转移的机制,当主服务器故障时,哨兵能自动检测并进行故障转移,确保服务连续和稳定性。哨兵模式通过监控主从服务器状态、自动故障转移、防止数据不一致,提高容错能力和负载均衡,降低运维成本,实现高可用性。哨兵通过检测主观下线和客观下线状态,以及选举Leader Sentinel来协调故障转移。Raft算法在其中用于领导者选举和状态一致性。哨兵模式通过综合考虑多种因素选举新主服务器并执行故障转移,保障集群稳定运行。
55 0
深入剖析Redis哨兵模式的原理和应用
|
18天前
|
NoSQL 网络安全 Redis
【docker】部署的redis突然连接不上了
【docker】部署的redis突然连接不上了
18 1
|
18天前
|
NoSQL Redis Docker
使用Docker搭建Redis主从集群
使用Docker搭建Redis主从集群
32 1