Redis哨兵模式部署和使用
type
status
date
slug
summary
tags
category
icon
password
本文仅介绍如何基于Docker+Docker-compose部署Redis:7.0.4哨兵集群,并在Springboot中通过Jedis或Redisson使用。关于Redis哨兵模式中的细节和实现原理请参阅Redis集群介绍和原理
Redis哨兵模式部署
前置
本文基于Docker和Docker-compose部署Redis集群,请确保对应服务器上已安装、
安装教程可参考docker离线安装。
部署架构
现有三台虚拟机node1(2C4G)、node2(1C2G)、node(1c2G),部署1主、2从和3哨兵的集群,具体架构如下:
IP | 主机名 | 部署服务 |
192.168.88.101 | node1 | master、所有sentinel结点 |
192.168.88.102 | node2 | slave |
192.168.88.103 | node3 | slave |
实际环境,sentinel应该与Redis结点分开部署,不然一旦服务器宕机,sentinel的监控就不起作用了
部署详情
1.配置node1
在redis-node1/config下创建配置redis.conf
在sentinel-26379/config下创建配置sentinel-26379.conf
同理,在sentinel-26380/config、sentinel-26380/config下依次创建对应文件sentinel-26380.conf和sentinel-26381.conf,文件内容基本一致,只是要改掉端口分别为26380、26381。(实际部署在不同服务器中,就不需要改端口了)
请确保,sentinel的配置文件具有写入权限,否则sentinel会启动失败,因为sentinel会向配置文件写入或修改数据(比如主结点切换时)。
最后,回到根目录下(集群部署目录redis-sentinel-cluster),创建docker-compose.yaml文件。
2.配置node2
node2创建文件夹
在redis-node2/config下创建配置文件redis.conf,内容基本和node1一致,只需要添加如下配置:
replicaof 192.168.88.101 6379该配置会将当前结点加入指定master的集群
同样,在部署根目录下,创建docker-compose.yaml文件。
3.配置node3
node3创建文件夹
在redis-node2/config下创建配置文件redis.conf(直接将node2中的配置复制过来即可)。
在部署根目录下创建docker-compose.yaml。
完成上述配置后,依次在node1、node2、node3的集群部署根目录(redis-sentinel-cluster)下,执行
docker-compose up -d启动集群。基于SpringBoot+Redisson使用Redis哨兵集群
- 使用IDEA创建一个SpringBoot项目
- 引入相关依赖 注意redisson的版本,SpringBoot版本为2.7.8
- 配置 基于application.yaml配置
也可以使用redisson.yaml配置
📎 参考文章
- GitTalk