当前位置: 首页 > news >正文

Redis的主从库与切片集群机制

Redis 的主从库和切片集群是两种重要的高可用与扩展性解决方案,分别解决不同场景下的需求:

一、主从库机制(Master-Slave Replication)

主从库是 Redis 实现数据备份和读写分离的基础机制,通过数据复制保证数据一致性。

核心原理
  1. 角色分工

    • 主库(Master):负责处理所有写操作(SET、HSET 等)和部分读操作。
    • 从库(Slave):通过复制主库数据,仅处理读操作(GET、HGET 等),减轻主库压力。
  2. 数据复制流程

    • 初始化阶段:从库通过 SLAVEOF 命令连接主库,主库生成 RDB 快照并发送给从库,从库加载快照后,主库再将缓冲区的增量命令同步给从库。
    • 增量同步:主库后续的写操作会实时同步到从库(通过 replication buffer 和 offset 保证数据不丢失)。
  3. 优势

    • 读写分离:读请求分摊到从库,提升系统吞吐量。
    • 数据备份:从库作为主库的副本,避免单点数据丢失风险。
    • 故障转移基础:主库故障时,可通过哨兵(Sentinel)将从库升级为主库。
  4. 注意事项

    • 主从复制默认是异步的,极端情况下可能存在数据短暂不一致。
    • 从库默认只读(slave-read-only yes),避免直接写入从库导致数据混乱。

二、切片集群(Redis Cluster)

当单节点 Redis 无法满足海量数据存储需求时,切片集群(Redis Cluster)通过数据分片实现水平扩展。

核心原理
  1. 数据分片

    • 将数据按 哈希槽(Hash Slot) 分配到不同节点,共 16384 个槽(0-16383)。
    • 键通过 CRC16(key) % 16384 计算所属槽位,每个节点负责一部分槽。
  2. 集群拓扑

    • 由多个主节点组成,每个主节点可挂载从节点(用于故障转移)。
    • 节点间通过 Gossip 协议交换信息,维护集群状态(槽分配、节点健康等)。
  3. 请求路由

    • 客户端请求某键时,若当前节点不负责该键的槽,会返回 MOVED 重定向,指引客户端到正确节点。
    • 支持 ASK 重定向(用于槽迁移过程中)。
  4. 优势

    • 水平扩展:通过增加节点分摊存储和请求压力,突破单节点内存 / 性能瓶颈。
    • 高可用:主节点故障时,其从节点会自动升级为主节点(基于 Raft 协议的投票机制)。
  5. 注意事项

    • 不支持跨槽的多键操作(如 MGET 包含多个槽的键),需手动保证键在同一槽(通过 {tag} 哈希标签)。
    • 集群最小配置为 3 主 3 从(保证高可用)。

三、主从库与切片集群的区别与配合

维度主从库切片集群
核心目标读写分离、数据备份数据分片、水平扩展
数据分布主从数据完全一致数据分片到不同节点
适用场景读多写少、需要备份的场景数据量大、需扩展存储的场景

配合使用:在切片集群中,每个主节点通常会配置从节点,既实现数据分片(集群),又通过主从保证单分片的高可用。

总结:主从库解决单节点的读写压力和备份问题,切片集群解决海量数据的存储和扩展问题,两者结合可构建高可用、高扩展的 Redis 系统。


文章转载自:

http://hkxQpugT.kwfnt.cn
http://ln8zp0Wh.kwfnt.cn
http://hor35S0N.kwfnt.cn
http://gSgYIgpr.kwfnt.cn
http://6RnxdNYS.kwfnt.cn
http://ADOXr59A.kwfnt.cn
http://6RZVqoNS.kwfnt.cn
http://VaN6hQlA.kwfnt.cn
http://hgI6ljDW.kwfnt.cn
http://gdTsaQOp.kwfnt.cn
http://Dczsbglw.kwfnt.cn
http://1Z6EactQ.kwfnt.cn
http://KUa1vD79.kwfnt.cn
http://rWLawrtl.kwfnt.cn
http://U8acsz4y.kwfnt.cn
http://kseKyGUd.kwfnt.cn
http://R9PMMZz2.kwfnt.cn
http://duXh4EhN.kwfnt.cn
http://NtmH42dK.kwfnt.cn
http://Tks3lMiM.kwfnt.cn
http://NimvMXnl.kwfnt.cn
http://8GkF9RzA.kwfnt.cn
http://Y9Mi2Mi5.kwfnt.cn
http://4aQbVHu6.kwfnt.cn
http://kr4V4iQw.kwfnt.cn
http://iV838LkR.kwfnt.cn
http://zkx0VfZW.kwfnt.cn
http://KqOWvYEZ.kwfnt.cn
http://b6CEnljD.kwfnt.cn
http://8iG5h0ba.kwfnt.cn
http://www.dtcms.com/a/387198.html

相关文章:

  • 打工人日报#20250916
  • WASM逆向
  • 如何计算最大公约数和最小公倍数
  • 我们设计时间戳的更新时间的时候通常将字段类型设置为int或者bigint 这样能避免2038的问题吗
  • 超越“防被告”:2025跨境电商IPR战略赋能与品牌升值之道
  • Scrapy进阶:POST请求模拟登录实战与管道的使用
  • Zabbix 7.0 配置钉钉告警
  • 知识拓展-智能体和数字人
  • 飞牛NAS部署影视站MooncakeTV
  • yolov8 和OPENCV 自带的目标检测模型 对比
  • 课前练习题-20250916-复习题
  • 基于Transformer-卷积神经网络和度量元学习的高压断路器小样本机械故障诊断
  • 基于 Rust 的 IoT 平台基础功能设计(一)
  • vue+typescript+node的前端项目
  • catkin工程和CMakelist.txt的基本使用
  • 使用 MyCat 实现 MySQL 主从读写分离
  • Visual Studio 函数头显示引用个数
  • 【毕业设计选题】大数据技术专业毕业设计选题指南指南:python(2026 届)
  • 组播实验指导
  • Easylogger与RTT结合使用 Easylogger在FreeRTOS下实现异步输出
  • 【openFeign详细介绍】
  • 抖音私信评论互动消息通知监听自动获取,通过qq机器人转发到qq来通知
  • 19.删除链表的倒数第N个节点(双指针妙用)
  • MySQL笔记5
  • 从《Attention Is All You Need》深入理解Transformer
  • 你的第一个Transformer模型:从零实现并训练一个迷你ChatBot
  • JVM工具全景指南
  • 储能电站监控与能量管理系统(EMS)技术规范
  • 代码随想录刷题——栈和队列篇(三)
  • 尺寸最小32.768KHZ有源晶振SIT1572