news 2026/4/16 11:04:56

Redis哨兵集群搭建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Redis哨兵集群搭建
文章目录
    • 1 为什么要使用哨兵模式
    • 2 哨兵模式的工作原理
    • 3 一主二从三哨兵搭建步骤
    • 4 测试该哨兵集群是否可用
    • 5 Spring Boot连接Redis哨兵集群

1 为什么要使用哨兵模式

主从模式下,主机会自动将数据同步到从机,为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务,写服务依然必须由Master来完成,实现读写分离。当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用

2 哨兵模式的工作原理

在主从模式下,redis同时提供了哨兵命令redis-sentinel,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵进程向所有的redis机器发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。

哨兵可以有多个,一般为了便于决策选举,使用奇数个哨兵。哨兵可以和redis机器部署在一起,也可以部署在其他的机器上。多个哨兵构成一个哨兵集群,哨兵直接也会相互通信,检查哨兵是否正常运行,同时发现master宕机哨兵之间会进行决策选举新的master。

3 一主二从三哨兵搭建步骤

  • 将redis文件复制三份到redis-sentinel目录下

    mkdir redis-sentinel

    cd redis-sentinel/

    cp -r /opt/redis-6.2.6/ .

    mv redis-6.2.6/ redis-6.2.6-5000/

因为我把redis-6.2.6/redis.conf被我复制到了/usr/local/bin/目录下,并进行了修改,并未使用redis-6.2.6/redis.conf,所以需要替换redis.conf文件

cd redis-6.2.6-5000/ rm -f redis.conf cp -r /usr/local/bin/redis.conf . cp -r . ../redis-6.2.6-5001/ cp -r . ../redis-6.2.6-5002/
  • 对于主节点(5000)

编辑redis.conf

vi /opt/redis-sentinel/redis-6.2.6-5000/redis.conf #只需要修改port port 5000

编辑sentinel.conf

vi /opt/redis-sentinel/redis-6.2.6-5000/sentinel.conf #修改port port 26380 #开启守护线程 daemonize yes #sentinel monitor <master-group-name> <ip> <port> <quorum> #master-group-name是集群名称 quorum是需要同意主节点不可用的Sentinel的数量 sentinel monitor mymaster ip 5000 2 #主节点密码 #sentinel auth-pass <master-name> <password> sentinel auth-pass mymaster 主节点密码


  • 对于两个从节点(5001,5002)

编辑redis.conf

#修改port(一个为5001,另一个为5002) port 5001 #主从复制 replicaof <masterip> <masterport> replicaof 主节点ip 主节点端口号 #主节点密码 masterauth <master-password> masterauth 主节点密码

编辑sentinel.conf

#修改port(一个为26381,另一个为26382) port 26381 #开启守护线程 daemonize yes #sentinel monitor <master-group-name> <ip> <port> <quorum> sentinel monitor mymaster ip 5000 2 #主节点密码 sentinel auth-pass mymaster 主节点密码

两个从节点的redis.conf只有端口号不相同,三个sentinel.conf也只有端口号不相同,主节点的redis.conf不需要设置replicaof和masterauth,否则复制自身会报错

4 测试该哨兵集群是否可用

  • 将master,slave,sentinel全都启动起来

    cd /usr/local/bin

master和slave启动方式

./redis-server /opt/redis-sentinel/redis-6.2.6-5000/redis.conf ./redis-server /opt/redis-sentinel/redis-6.2.6-5001/redis.conf ./redis-server /opt/redis-sentinel/redis-6.2.6-5002/redis.conf

sentinel启动方式

./redis-sentinel /opt/redis-sentinel/redis-6.2.6-5000/sentinel.conf ./redis-sentinel /opt/redis-sentinel/redis-6.2.6-5001/sentinel.conf ./redis-sentinel /opt/redis-sentinel/redis-6.2.6-5002/sentinel.conf
  • 主从复制,slave只读,master宕机哨兵决策选举新的master均测试成功,由于测试过程不好呈现,故不在文中列出

Redis关闭指定端口

redis-cli -a 该端口节点密码 -p 端口号 shutdown

5 Spring Boot连接Redis哨兵集群

spring: redis: password: # 主节点密码 sentinel: master: mymaster #集群名称 nodes: #只需要配置哨兵 ip:port 列表 - localhost:port1 - localhost:port2 - localhost:port3

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 12:38:05

工业控制板卡PCB绘制布线规则深度剖析

工业控制板卡PCB设计&#xff1a;从布线细节到系统可靠性的实战指南你有没有遇到过这样的情况&#xff1f;电路原理图画得一丝不苟&#xff0c;元器件选型高端精准&#xff0c;MCU和ADC都用了工业级型号——可一上电测试&#xff0c;ADC读数跳变、通信偶发丢包、复位莫名其妙触…

作者头像 李华
网站建设 2026/4/16 2:17:37

Redis 配置日志

redis 日志 redis在默认情况下&#xff0c;是不会生成日志文件的&#xff0c;所以需要配置 配置方法&#xff1a; 1、首先找到redis的配置文件 2、打开配置文件&#xff0c;找到logfile&#xff08;可能有多个logfile&#xff0c;认准旁边有loglevel的那个&#xff09;&#xf…

作者头像 李华
网站建设 2026/4/16 9:09:22

从零开始:构建物联网大数据平台的完整指南

从零开始&#xff1a;构建物联网大数据平台的完整指南 引言 痛点引入 随着物联网&#xff08;IoT&#xff09;技术的飞速发展&#xff0c;越来越多的设备接入网络&#xff0c;产生了海量的数据。这些数据蕴含着巨大的价值&#xff0c;例如通过分析智能工厂设备产生的数据&#…

作者头像 李华
网站建设 2026/4/16 9:06:35

Keil uVision5版本控制集成配置实战案例

Keil uVision5 与 Git 深度集成实战&#xff1a;告别“手动备份”的嵌入式开发新时代你有没有过这样的经历&#xff1f;熬夜调通了一个关键驱动&#xff0c;第二天却发现同事覆盖了你的代码&#xff1b;紧急修复现场问题时&#xff0c;手头的固件版本根本找不到对应源码&#x…

作者头像 李华
网站建设 2026/4/16 0:49:55

LCD12864工作原理深度剖析:超详细版硬件结构解析

从零读懂LCD12864&#xff1a;一个嵌入式工程师的实战拆解你有没有遇到过这样的场景&#xff1f;手里的单片机项目已经跑通了传感器采集&#xff0c;逻辑控制也没问题&#xff0c;结果一到“显示”这一步就卡住了——想显示个中文&#xff0c;却发现普通字符屏&#xff08;比如…

作者头像 李华