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

【Redis】Cluster集群

目录

  • 1、背景
  • 2、核心特性
    • 【1】数据分片
    • 【2】高可用
    • 【3】去中心化
    • 【4】客户端重定向
  • 3、集群架构
    • 【1】最小规模
    • 【2】节点角色
    • 【3】通信协议
  • 4、数据分片与路由
    • 【1】哈希槽分配
    • 【2】客户端路由逻辑
  • 5、故障恢复
  • 6、适用场景

1、背景

Redis Cluster是Redis官方提供的分布式解决方案,用于实现数据分片和高可用性。

2、核心特性

【1】数据分片

采用哈希槽(Hash Slot)机制,将数据划分为16384个槽,每个节点负责一部分槽。数据通过CRC16算法计算出一个16位的值,再对16384取模计算所属槽位,实现均匀分布。

【2】高可用

每个主节点可以配置多个从节点,主节点故障时,从节点通过选举晋升为新主节点(基于Raft协议)

【3】去中心化

节点通过Gossip协议通信,无需依赖外部协调服务

【4】客户端重定向

客户端直接与任意及节点通信,若请求的键不属于当前节点,会返回MOVED或ASK错误,引导客户端重定向到正确节点

3、集群架构

【1】最小规模

1、至少需要3个主节点和3个从节点

【2】节点角色

1、主节点:处理读写请求,管理分配的哈希槽
2、从节点:复制主节点数据,故障时替换主节点

【3】通信协议

1、Gossip协议:节点间交换状态信息(如槽分配、节点存活)
2、PING/PONG消息:用于检测节点健康状态

4、数据分片与路由

【1】哈希槽分配

1、集群启动时,管理员需手动或通过工具(如redis-cli --cluster create)分配槽位

【2】客户端路由逻辑

1、若键所属槽位在当前节点,直接执行命令
2、若不在,且该槽的迁移未在进行中时,返回MOVED [slot] [target-node:port]错误,客户端需缓存槽与节点的映射关系
3、当集群正在执行数据迁移,且请求的键已被迁移到目标节点,但槽的归属尚未完全转移时,反会ASK [slot] [target-node:port]错误

5、故障恢复

1、主节点故障检测:其它节点通过心跳检测超时标记节点为PFAIL,超过半数主节点确认后标记为FAIL
2、从节点晋升:从节点发起选举,获取多数主节点投票后晋升为新主节点
3、网络分区处理:若分区导致少数派节点无法联系多数派,集群会停止写入(通过cluster-require-full-coverage配置控制)

6、适用场景

1、需要水平扩展读写性能的场景
2、对高可用性要求较高的服务
3、数据量超出单机内存容量时

http://www.lryc.cn/news/2403208.html

相关文章:

  • 黑马Java面试笔记之 微服务篇(SpringCloud)
  • CLIP多模态大模型的优势及其在边缘计算中的应用
  • 基于STM32语音识别柔光台灯
  • 基于PSO粒子群优化的VMD-GRU时间序列预测算法matlab仿真
  • 探索未知惊喜,盲盒抽卡机小程序系统开发新启航
  • 基于开源AI大模型与AI智能名片的S2B2C商城小程序源码优化:企业成本管理与获客留存的新范式
  • Python----目标检测(YOLO简介)
  • mysql+keepalived
  • Profinet 协议 IO-Link 主站网关(三格电子)
  • Ubuntu22.04 安装 Miniconda3
  • Hubstudio浏览器如何使用Loongproxy?
  • 硬件工程师笔记——555定时器应用Multisim电路仿真实验汇总
  • ComfyUI 对图片进行放大的不同方法
  • Elasticsearch最新入门教程
  • 第16节 Node.js 文件系统
  • 【Linux网络篇】:从HTTP到HTTPS协议---加密原理升级与安全机制的全面解析
  • jenkins结合gitlab实现CI
  • SQL进阶之旅 Day 17:大数据量查询优化策略
  • 字符串 金额转换
  • 浅聊一下,大模型应用架构 | 工程研发的算法修养系列(二)
  • 装载机防撞系统:智能守护,筑牢作业现场人员安全防线
  • 上门服务小程序订单系统框架设计
  • 11.MySQL事务管理详解
  • 前端实现视频/直播预览
  • React源码阅读-fiber核心构建原理
  • 视频监控管理平台EasyCVR与V4分析网关对接后告警照片的清理优化方案
  • 基于 BGE 模型与 Flask 的智能问答系统开发实践
  • 机器学习:决策树和剪枝
  • vscode自定义主题语法及流程
  • vue中加载Cesium地图(天地图、高德地图)