news 2026/8/29 5:09:05

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/8/21 5:42:46

HY-MT1.5-7B实战教程:解释性翻译场景优化,GPU利用率提升50%

HY-MT1.5-7B实战教程&#xff1a;解释性翻译场景优化&#xff0c;GPU利用率提升50% 1. 引言 随着全球化进程的加速&#xff0c;高质量、多语言互译能力已成为自然语言处理&#xff08;NLP&#xff09;领域的重要需求。特别是在跨文化沟通、技术文档本地化和混合语言内容生成等…

作者头像 李华
网站建设 2026/8/25 13:37:50

redis 配置

#ip地址 redis.hostName172.20.1.205 #端口号 redis.port6379 #如果有密码 redis.password123456 #客户端超时时间单位是毫秒 默认是2000 redis.timeout10000 #最大空闲数 redis.maxIdle300 #连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal #…

作者头像 李华
网站建设 2026/8/19 15:40:02

Keil新建工程全流程梳理:适合初学者的理解方式

从零构建嵌入式开发工程&#xff1a;Keil 新建项目的实战指南 你有没有经历过这样的场景&#xff1f; 刚打开 Keil&#xff0c;信心满满地准备写第一行代码&#xff0c;结果新建完工程一编译&#xff0c;满屏红色报错—— undefined symbol Reset_Handler 、 cannot open s…

作者头像 李华
网站建设 2026/8/22 12:00:31

基于Transformer架构的电影评论情感分类算法优化研究(源码+万字报告+讲解)(支持资料、图片参考_相关定制)

摘要 随着人工智能技术的飞速发展&#xff0c;基于深度学习的模型在各种文本分类任务中已经超越了基于经典机器学习的方法&#xff0c;包括情感分析、新闻分类、问答和自然语言推理。文本分类的发展为自动化分析人类各种评论情感指标的操作带来了极大的方便和卓越的体验。鉴于T…

作者头像 李华