Redis——主从&哨兵配置

Redis(十):主从模式 上一篇介绍了 Redis 应对并发问题的方案。这节开始介绍 Redis 的主从模式。由于 Redis 是基于内存的,一旦发生崩溃就会导致数据的丢失,所以单个 Redis 实例并不能保证数据的可靠性。为了应对高可靠性要求的场景,可以使用多个 Redis 实例作为某个节点的备份实例,从而实现了主从架构。从节点可以作为主节点的备份节点,当主节点崩溃时,由于各个节点间的数据是相同的,还能够切换节点来保证整个集群的可靠性。 阅读详情
AI摘要

本文介绍了Redis的核心原理、特性、应用价值和场景,重点阐述了主从复制和哨兵模式的部署。Redis数据存于内存,有多种数据结构和持久化机制,支持主从复制、集群和哨兵模式。文中给出主从和哨兵的配置命令,还提及主从重启、哨兵集群数量和网络互通等注意事项。

目录

基础概念

‌一、核心原理‌

‌二、核心特性‌

‌三、技术意义与应用价值‌

‌四、典型应用场景‌

案例部署

‌一、主从复制配置命令‌

‌二、哨兵模式部署命令‌

‌关键注意事项‌


基础概念

‌一、核心原理‌

  1. ‌内存存储与高性能‌
    Redis 所有数据存储于内存中,读写操作直接在内存完成,避免磁盘 I/O 瓶颈。单线程模型(6.0 前)通过多路复用处理并发请求,确保原子性操作,延迟低至微秒级,支撑 10W+ QPS 高并发场景。

  2. ‌数据结构与对象系统‌

    • ‌底层数据结构‌:包括简单动态字符串(SDS)、双向链表、哈希表、跳表、压缩列表(ziplist)等。
    • ‌对象封装‌:通过 redisObject 结构体封装数据类型(如 String/Hash/List/Set/ZSet),动态选择最优编码(如 ziplist 或 hashtable),平衡内存与性能。
    • ‌示例‌:Hash 类型在元素少时使用 ziplist(节省内存),元素多时转为 hashtable(提升操作效率)。
  3. ‌持久化机制‌

    • ‌RDB(快照)‌:定时生成内存数据的二进制快照,适合灾难恢复,但可能丢失最后一次快照后的数据。
    • ‌AOF(日志追加)‌:记录每条写操作指令,支持实时持久化。通过重写机制压缩日志文件。
    • ‌混合模式‌(Redis 4.0+):结合 RDB 快照与 AOF 增量日志,平衡恢复速度与数据安全性。
  4. ‌集群与高可用‌

    • ‌主从复制‌:主节点(Master)异步同步数据到从节点(Slave),支持读写分离。断线重连后可触发全量同步(RDB 传输)或增量同步(缓冲区指令补发)。
    • ‌Redis Cluster‌:分片存储数据至 16384 个哈希槽(Slot),节点间通过 Gossip 协议通信,支持自动故障转移与水平扩展。
    • ‌哨兵模式(Sentinel)‌:监控主节点状态,自动选举新主节点,实现高可用。

‌二、核心特性‌

‌特性‌‌说明‌
‌多数据结构支持‌String、List、Hash、Set、ZSet(有序集合)等,覆盖复杂业务场景(如排行榜、社交关系)。
‌原子性操作‌单线程模型保证命令原子执行,结合 Lua 脚本实现多操作原子性。
‌发布订阅(Pub/Sub)‌支持消息广播机制,用于简易消息队列。
‌过期与淘汰策略‌支持 TTL 过期时间,内存不足时启用 LRU/LFU/TTL 等淘汰算法。
‌事务支持‌通过 MULTI/EXEC 实现弱事务(不保证回滚)。

‌三、技术意义与应用价值‌

  1. ‌解决性能瓶颈‌
    作为缓存层,将热点数据置于内存,减轻后端数据库压力,提升响应速度(如秒杀系统)。

  2. ‌丰富数据模型支持‌
    超越传统 KV 存储,提供集合运算、范围查询、排序等能力,直接实现排行榜(ZSet)、好友关系(Set)等场景。

  3. ‌分布式系统基石‌

    • ‌分布式锁‌:通过 SETNX 命令实现跨进程互斥锁。
    • ‌消息队列‌:List 结构实现轻量级队列,Pub/Sub 支持实时消息推送。
    • ‌会话共享‌:集中存储用户 Session,支持水平扩展。
  4. ‌高可用架构支撑‌
    集群与哨兵模式保障服务连续性,满足企业级可用性要求。


‌四、典型应用场景‌

  • ‌缓存加速‌:数据库查询结果缓存。
  • ‌实时计数器‌:String 结构的原子增减(如浏览量统计)。
  • ‌排行榜‌:ZSet 按分数排序(如游戏积分榜)。
  • ‌社交功能‌:Set 实现共同关注、好友推荐。
  • ‌限流与分布式锁‌:控制 API 访问频率,协调分布式资源。

Redis 通过内存计算、灵活数据结构与分布式架构,重塑了高性能数据处理的范式,成为现代应用中缓解数据库压力、实现复杂逻辑的关键组件。其设计平衡了速度、灵活性与可靠性,在微服务、实时计算等领域持续发挥核心价值。

案例部署

‌一、主从复制配置命令‌

  1. ‌主节点配置‌

    • 主节点无需特殊配置,默认启动即为 Master 角色:
      redis-server /path/to/redis.conf 
    • 验证主节点状态:
      redis-cli -p 6379 info replication # 查看角色(role:master)及从节点连接数
  2. ‌从节点配置‌

    • ‌方式1‌:启动时指定主节点(临时生效)
      redis-server --slaveof <master-ip> <master-port> 
    • ‌方式2‌:运行时动态切换为主节点的从节点
      redis-cli -p 6380 slaveof <master-ip> <master-port> # 6380为从节点端口
    • ‌方式3‌:配置文件永久生效(推荐)
      修改从节点的 redis.conf:
      slaveof <master-ip> <master-port> replica-read-only yes # 从节点只读
  3. ‌验证主从同步‌

    • 在主节点写入数据后,从节点执行:
      redis-cli -p 6380 get key_name # 检查数据是否同步

‌二、哨兵模式部署命令‌

  1. ‌哨兵配置文件‌
    创建 sentinel.conf,关键配置示例:

    sentinel monitor mymaster <master-ip> 6379 2 # 监控主节点,2表示至少2个哨兵同意才触发故障转移:ml-citation{ref="12,14" data="citationList"} 
    
    sentinel down-after-milliseconds mymaster 5000 # 主节点5秒无响应视为主观下线:ml-citation{ref="14" data="citationList"} 
    
    sentinel failover-timeout mymaster 60000 # 故障转移超时时间(毫秒):ml-citation{ref="11" data="citationList"} 
  2. ‌启动哨兵节点‌

    redis-sentinel /path/to/sentinel.conf # 每个哨兵节点独立启动:ml-citation{ref="12" data="citationList"} 
  3. ‌模拟故障转移测试‌

    • 手动停止主节点:
      redis-cli -p 6379 shutdown 
    • 观察哨兵日志,确认新主节点选举:
      tail -f /var/log/redis/sentinel.log # 输出包含"+failover"和"+switch-master":ml-citation{ref="12,14" data="citationList"} 
  4. ‌客户端重定向‌
    应用需配置哨兵节点地址而非直接连接主节点,哨兵会自动返回当前主节点信息。


‌关键注意事项‌

  • ‌主从复制‌:从节点重启后需重新执行 slaveof 命令或配置持久化。
  • ‌哨兵集群‌:至少部署3个哨兵节点以避免脑裂问题。
  • ‌网络互通‌:确保主从节点及哨兵间防火墙开放对应端口(如6379、26379)。
使用 Docker 配置 Redis 主从复制 配置 Redis 哨兵 https://www.boris1993.com/database/Redis/redis-replication-in-docker.html https://www.boris1993.com/database/Redis/redis-sentinel-in-docker.htm l https://github.com/zhuchuangang/k8s-install-scripts... 阅读详情

相关推荐

深入学习 Redis - 主从结构配置、流程、底层原理(全网最详细)

单点问题可用性:如果这个机器挂了,意味着服务就中断了.性能:支持的并发量也是比较有限的.因此引入分布式系统,主要也是为了解决上述的单点问题~ 分布式系统中,往往需要多个服务器来部署 redis 服务,从而构成redis 集群,此时就可以让这个集群给整个分布式系统中的其他服务,提供更稳定 / 更高效的数据存储功能.本章主要来讲一下 redis 部署方式中的主从模式~

CYK_byte的博客 1万+

Redis—主从配置

Redis主从配置参数详解

xiayping的博客 4390

一文读懂Redis之主从模式搭建

本文详细介绍了Redis主从模式的搭建过程,包括Master和Slave节点的安装配置、服务启动及数据同步验证。主要内容涵盖:1)Redis主从模式的作用,提高数据可靠性并分担读写压力;2)环境准备,包括服务器IP、系统版本和依赖安装;3)具体搭建步骤,从目录创建、安装包下载到配置文件修改;4)主从服务启动和状态检查;5)数据同步验证。通过该方案,可有效实现Redis数据冗余备份和读写分离,增强服务可用性。

野熊佩骑的博客 1935

Redis 主从搭建

同机器 一主两从操作系统Centos 7内核版本主机名称IP地址端口Redis7.2.5操作系统Centos 7Centos 7Centos 7内核版本主机名称masterslave1slave2IP端口163801638116382。

菜鸟一枚,对云原生感兴趣 3890

gerrit 配置 ----Gitweb集成

此外,为了让用户能够查看任何关于 gitweb 的信息 项目中,用户必须能够阅读所有引用(包括 refs/meta/config,refs/meta/dashboards/*等)。或者,如果Gerrit通过反向代理送达,它可以 为gitweb的链接生成不同的URL(需要的) 在网页服务器上重写为)。Gerrit 代码审查可以管理和生成指向 gitweb 的超链接, 允许用户从Gerrit内容跳转到相同信息, 但由 gitweb 显示。默认为,这是 Linux 发行版上“gitweb”包的常见安装路径。

QuanQuanYuanXin的博客 1404

0018-量化第五天:QMT—日内回转回测注释

日内做T算法框架

m0_68750710的博客 4145

【保姆级&安装大全之】Redis主从配置 以及哨兵

今天我们要分享下关于主从Redis配置 以及哨兵,但是学习此文章之前,可以先看下上一篇文章【【保姆级&安装大全之】单机版Redis我们在生产环境使用Redis部署高可用的时候,无非有几种情况。第一种是:主从配置第二种是:集群第三种是:主从 + 集群那么接下来让我们从主从配置开始一步一步进行学习。在redis主从默认是只有主具备写的能力,而从只能读。如果主宕机,整个节点不具备写能力。但是如果这是让一个从变成主,整个节点就可以继续工作。即使之前的主恢复过来也当做这个节点的从即可。

weixin_42373116的博客 480

【上海大学计算机组成原理实验报告】六、内存系统实验

学习内存访问机制//理解代码和数据的分区存放原理和技术//手动方式把立即数`33H`写入内存`D1H`单元//手动方式把`D1H`单元的内容读出,再送入`ST`单元//在`CP226`汇编语言程序集成开发环境下编写程序//既然有`ORG`微指令,为什么集成开发环境下载到实验箱的目标程序的第一条执行语句最好存放在0号地址?//上海大学计算机组成原理实验//内存系统实验

HackerKevon的博客 3128

Redis for linux源码&集群(cluster)&主从(master-slave)&哨兵(sentinel)安装配置

一.redis单实例安装配置 1.下载redis源码压缩包,并将其上传至服务器/usr/local 2.解压redis源码压缩包 # tar -xzvf redis-3.2.12.tar.gz 3.进入redis解压缩后的目录进行编译 # cd redis-3.2.12 # make 4.编译成功后,再对redis进行安装 # cd src # make install 5....

数据库生态圈(RDB & NoSQL & Bigdata)——专注于关系库应用与研究(Oracle & Mysql & Postgresql & SQL Server ) 373

标准恢复二极管整流器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

报告页数: 150 图表数: 100 报告价格:¥16800 本文研究全球与中国市场标准恢复二极管整流器的发展现状及未来发展趋势,分别从生产和消费的角度分析标准恢复二极管整流器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。 主要生产商包括: Yangzhou Yangjie Vishay Intertechnology Power Semiconductors Inc Nexperia B

Fj69258的博客 5848

基于STM32的智能衣柜系统开发实战(附完整源码与硬件设计)

本文详细介绍了基于STM32的智能衣柜系统开发实战,包括硬件设计、软件架构和云端功能实现。系统具备实时温湿度监控、自动加热除湿、紫外线杀菌等核心功能,通过STM32F103C8T6主控芯片和ESP8266无线模块实现智能控制。附完整源码与硬件设计,适合科技爱好者和开发者参考。

peach的博客 781

Redis---主从复制 & 哨兵

这是一篇对redis主从复制和哨兵的学习笔记!

flyingcloud6的博客 4009

【AI应用实战-Codex】Mac intel芯片下安装Codex(二)

摘要:本文介绍了在Intel芯片Mac上安装OpenAI Codex桌面应用时遇到的问题及解决方法。由于官方仅提供ARM64版本,导致Intel Mac无法直接运行。解决方案包括:1)使用社区脚本将ARM版DMG与x64 Electron重新打包成兼容版本;2)使用VSCode插件配合CLI作为替代方案。文章详细记录了重新打包过程中遇到的&quot;electron_common_owl_features&quot;绑定缺失错误,通过注入stub代码、重算ASAR完整性哈希等步骤成功解决问题。最终生成的Co

3520

Redis 哨兵挂了,主从库还能切换吗?

通常,我们在解决一个系统问题的时候,会引入一个新机制,或者设计一层新功能,就像 redis 为了实现主从切换,引入了哨兵;为了避免单个哨兵故障后无法进行主从切换,以及为了减少误判率,又引入了哨兵集群;哨兵集群又需要有一些机制来支撑它的正常运行。基于 pub/sub 机制的哨兵集群组成过程;基于 INFO 命令的从库列表,这可以帮助哨兵和从库建立连接;基于哨兵自身的 pub/sub 功能,这实现了客户端和哨兵之间的事件通知。对于主从切换,当然不是哪个哨兵想执行就可以执行的,否则就乱套了。

swadian2008的博客 1443

BP神经网络回归预测+SHAP可解释分析+新数据预测(MATLAB完整源码)

BP神经网络回归预测+SHAP可解释分析+新数据预测(MATLAB完整源码)

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 390

104、母线电容设计与选型

母线电容选型,容值不是最关键的,纹波电流和温度才是。很多炸机事故,不是容值不够,而是纹波电流超标导致过热。选电容时,多花点时间算纹波电流,比盲目加大容值有效得多。另外,别迷信进口品牌。国产电容(如江海、艾华)在常规应用里完全够用,价格只有进口的1/3。但高频特性确实有差距,所以高频去耦一定要用薄膜电容。最后,留个调试技巧:用示波器测母线电容两端的电压纹波,同时用电流探头测电容的纹波电流。如果纹波电流波形有尖峰,说明ESL太大,需要并联高频电容。如果纹波电压是低频波动,说明容值不够。

2401_88858637的博客 49

springboot配置Redis哨兵主从服务 以及 Redis 集群

redis哨兵集群配置 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。具体原理和配置参考《【带你重拾Redis】Redis 哨兵集群实现高可用》 springboot配置Redis主从服务 接下来学了一下springboot配置redis的主从服务器。根据一主二从三哨兵的原则来搭建

LoveSummer 1万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Redis-主从&哨兵

client端第一次从哨兵找出redis的主节点,后续就直接访问redis的主节点,不会每次都通过sentinel代理访问redis的主节点,当redis的主节点发生变化,哨兵会第一时间感知到,并且将新的redis主节点通知给client端(这里面redis的client端一般都实现了订阅功能,订阅sentinel发布的节点变动消息)哨兵(sentinel):不提供读写服务,主要用来监控redis实例节点。主从复制风暴:多个从节点同时复制主节点导致主节点压力过大。info命令查看主从节点信息。

姜希成的博客 1202

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Redis主从架构&哨兵模式

Redis主从架构与哨兵机制实现高可用 摘要:本文介绍了Redis高可用解决方案,包括主从模式和哨兵架构。主从架构采用一主多从或主-从-从结构,主节点处理写请求,从节点负责读请求和数据同步。主从同步分为全量复制和增量复制两种机制,首次连接采用全量复制,断线重连则根据偏移量进行增量同步。哨兵架构通过监控集群实现自动故障转移,当主节点失效时自动选举新主节点。文章详细演示了主从和哨兵环境的搭建步骤,并测试了哨兵自动故障恢复功能,确保Redis在节点故障时仍能持续提供服务。

西岭千秋雪的博客 1506

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Redis单机、主从、哨兵、集群配置

在这里,我们将搭建三个主节点,并且为每个主节点再搭建一个从节点,总共六个redis节点。6:在Redis 5之前,要创建整个Redis集群,需要使用redis-trib.rb脚本。现在,在Redis 5及更高版本中,你可以使用redis-cli来创建整个Redis集群。1、复制一份redis.conf文件:使用cp命令复制一份redis.conf文件,以便对从节点进行配置。3:将修改后的配置文件复制到8004文件夹下,并对该文件进行批量替换以修改第2、3、4、6项中的端口号。

softshow1026的博客 1418

一文精通Redis主从、哨兵模式部署

如果主节点版本够新,但是 runid 与从节点发送的 runid 不同,或从节点发送的 offset 之后的数据已不在复制积压缓冲区中(在队列中被挤出了),则回复 +fullresync ,表示要进行全量复制,其中 runid 表示主节点当前的 runid,offset 表示主节点当前的 offset,从节点保存这两个值,以备使用。如果从节点之前执行了slaveof,则发送命令为 psync ,其中 runid 为上次复制的主节点的 runid,offset 为上次复制截止时从节点保存的复制偏移量。

weixin_42380501的博客 2274

Redis哨兵模式以及主从

Redis哨兵模式(Sentinel)是Redis提供的一种高可用性解决方案,主要用于监控Redis主从集群中的主节点(Master)和从节点(Slave),并在主节点发生故障时自动完成故障转移,确保Redis服务的持续可用性。哨兵模式的核心功能监控(Monitoring)哨兵节点会持续监控Redis主节点和从节点的运行状态,包括心跳检测(每秒一次PING命令)。若主节点在指定时间内()未响应,哨兵会标记主节点为“主观下线”(SDOWN)。故障通知(Notification)

2302_79408199的博客 1017

Redis单机&主从&哨兵&集群部署全攻略

Redis 单机模式、主从模式、哨兵模式、集群模式 部署详细攻略;一步步都是实操踩坑,总结出来的经验。

xiaoyuanbama的博客 1307

Redis主从模式与哨兵模式详解及案例分析

Redis主从模式是一种数据复制机制,其中一个Redis实例(主节点)将其数据复制到一个或多个Redis实例(从节点)。主节点负责处理写操作,而从节点负责处理读操作。通过这种方式,可以实现读写分离,提高系统的读取性能。哨兵模式是Redis提供的一种高可用解决方案。哨兵(Sentinel)是一个独立的进程,用于监控Redis主从节点的健康状态。当主节点发生故障时,哨兵可以自动将一个从节点提升为新的主节点,从而实现故障转移。Redis主从模式和哨兵模式是提高Redis可用性和扩展性的重要手段。

闲人编程的博客 2098

Redis主从与哨兵架构详解

Redis主从与哨兵架构详解

一个喜欢诗和远方的程序媛 1038

Redis & 哨兵 & 总结

哨兵机制实现了对主从同步机制故障转移的自动化。 哨兵会对外提供Redis的连接地址。 哨兵推荐以奇数集群的形式进行工作。 监测相同主机的多个哨兵默认同属一个集群。

说淑人的所思所想 1697
上一篇: NoSQL——Redis配置与优化
下一篇: Redis——Cluster配置
霖檬ing
博客等级 码龄2年 701粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值