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哨兵集群

  1. 使用IDEA创建一个SpringBoot项目
  1. 引入相关依赖 注意redisson的版本,SpringBoot版本为2.7.8
    1. 配置 基于application.yaml配置
      1. 也可以使用redisson.yaml配置

    📎 参考文章

    • GitTalk

    © aya 2024-2025