Redis集群笔记
文章目录一、先搞懂我们为什么需要Redis集群二、Redis集群核心底层16384哈希槽是什么小坑提醒三、实操CentOS7搭建3主3从Redis集群前置准备步骤1创建集群目录与独立配置文件步骤2启动6个Redis节点步骤3一键创建集群重点易错点步骤4集群客户端连接-c参数不能丢四、集群故障自动恢复机制面试高频场景1单个主节点宕机如6379下线场景2某一组主从全部宕机五、集群优缺点总结优点缺点六、学习复盘集群、主从、哨兵三者怎么选Redis集群总结一、为什么要用Redis集群二、核心原理16384哈希槽三、CentOS7搭建实操要点四、集群优缺点优点缺点五、SpringBoot整合Redis集群六、三种Redis架构适用场景七、学习总结一、先搞懂我们为什么需要Redis集群先回忆之前学的架构单机Redis、一主多从哨兵模式都有明显短板这也是集群诞生的核心原因容量瓶颈单台Redis内存有限百万级商品、用户缓存根本存不下主从只是复制数据不能扩容存储空间数据只能存在主节点一台机器。并发上限低所有写操作只能打在唯一主节点海量秒杀、首页缓存场景下单节点CPU、网络IO直接打满无法分摊写压力。主从哨兵有硬伤哨兵只能做故障自动切换不能水平分片存储数据所有key全量存在主库扩容只能换更高配置服务器成本极高无法分布式横向拓展。Redis Cluster3.0推出无中心化集群完美解决两大痛点数据分片存储、读写分布式扩容同时自带主从故障自动切换是企业生产主流缓存架构。二、Redis集群核心底层16384哈希槽是什么这是集群最核心的概念考试、面试必考点我当初理解了半天才通透槽位总数固定163840~16383Redis把所有缓存key均匀划分到16384个哈希槽每个主节点负责一部分槽数据按槽分片存放。key归属计算规则CRC16(key) % 16384通过CRC16算法算出key的校验值对16384取模得到这个key对应的哈希槽编号客户端自动路由到对应主节点读写。分片示例3主架构主节点10 ~ 5460 槽主节点25461 ~ 10922 槽主节点310923 ~ 16383 槽每个主节点搭配从节点标准3主3从一个槽的主节点宕机对应从自动升级为主保证数据不丢失、集群可用。小坑提醒集群环境下不在同一个哈希槽的多个key不能用mset、mget批量操作直接报CROSSSLOT跨槽错误解决方案哈希标签{分组标识}大括号内内容参与哈希计算相同大括号的key会落到同一个槽mset user{order}:1 zhang user{order}:2 li两个key都根据order计算槽位支持批量操作。三、实操CentOS7搭建3主3从Redis集群课程里用6个Redis实例端口6379/6380/6381主、6389/6390/6391从全程命令亲测可用报错点全部标注前置准备已编译安装Redis6.2.1gcc环境正常关闭防火墙/开放6379~6391端口注释bind 127.0.0.1关闭保护模式protected-mode no否则外部/集群节点无法通信步骤1创建集群目录与独立配置文件# 新建集群文件夹mkdirredis-clustercdredis-cluster# 拷贝基础redis配置cp/opt/redis-6.2.1/redis.conf ./复制6份配置分别修改端口、pid、rdb文件名必须开启集群三大参数核心配置# 开启集群模式 cluster-enabled yes # 集群节点信息存储文件每个实例名字区分 cluster-config-file nodes-6379.conf # 节点失联超时15秒超时触发主从切换 cluster-node-timeout 15000批量替换端口小技巧vim全局替换:%s/6379/63806份文件快速改完。步骤2启动6个Redis节点redis-server redis6379.conf redis-server redis6380.conf redis-server redis6381.conf redis-server redis6389.conf redis-server redis6390.conf redis-server redis6391.conf# 查看进程确认全部启动ps-ef|grepredis启动成功后目录自动生成nodes-xxxx.conf节点记录文件。步骤3一键创建集群重点易错点进入redis源码src目录执行创建命令必须写服务器真实IP不能127.0.0.1否则集群节点互通失败cd/opt/redis-6.2.1/src redis-cli--clustercreate192.168.10.130:6379192.168.10.130:6380192.168.10.130:6381192.168.10.130:6389192.168.10.130:6390192.168.10.130:6391 --cluster-replicas1参数解释--cluster-replicas 1每个主节点分配1个从节点3主3从完美架构。执行后输入yes确认哈希槽分配出现All 16384 slots covered代表集群搭建成功步骤4集群客户端连接-c参数不能丢# -c 开启集群自动重定向无此参数跨槽读写报错redis-cli-c-p6379# 查看集群全部节点信息cluster nodes# 查看指定key所属哈希槽cluster keys k1写入测试set k1 v1终端会自动提示重定向到对应节点集群路由机制生效。四、集群故障自动恢复机制面试高频场景1单个主节点宕机如6379下线集群其他节点检测到6379超时失联6379对应的从节点6390自动升级为主节点接管0~5460所有哈希槽3 原有主节点6379重启后自动变成新主6390的从节点整个集群正常读写无停机。场景2某一组主从全部宕机由配置cluster-require-full-coverage控制yes默认16384槽无法全部覆盖整个集群直接不可用no仅丢失该组槽的数据无法读写其余节点正常工作。生产环境建议改为no降低整体故障影响范围。五、集群优缺点总结优点数据分片存储横向扩容内存突破单机容量限制读写分离分布式分摊并发写压力分散到多主节点内置主从复制自动故障转移无需额外部署哨兵无中心化架构任意节点可接收客户端请求自动路由。缺点多键批量操作限制无哈希标签无法跨槽mget/mset事务仅支持单个哈希槽内key跨槽不支持事务搭建、运维复杂度高于单机、哨兵架构批量数据备份、扩容迁移操作流程更繁琐。六、学习复盘集群、主从、哨兵三者怎么选很多同学学完混淆一张表分清适用场景架构核心能力适用场景缺陷单机Redis简单缓存、五大数据类型小型项目、本地测试、低并发容量、并发上限极低无高可用一主多从哨兵读写分离、自动故障切换中等项目数据量不大仅需高可用无法分片扩容所有数据存主库Redis集群分片扩容自动容灾大型互联网、高并发海量缓存多键、事务有使用限制运维复杂Redis集群总结一、为什么要用Redis集群单机内存、并发上限低一主多从哨兵仅实现故障切换无法拆分数据横向扩容。Redis Cluster为3.0推出的无中心化集群同时实现数据分片存储、分布式分摊读写压力自带主从自动容灾。二、核心原理16384哈希槽固定0~16383共16384个哈希槽通过CRC16(key)%16384计算key归属槽位分散存储到多台主节点标准部署3主3从每个主节点搭配一台从机主节点宕机时对应从自动升级为主不同槽位key不能执行mset/mget使用哈希标签{xxx}大括号内字符参与哈希计算让多key落到同一槽支持批量操作。三、CentOS7搭建实操要点6个实例6379/6380/6381为主6389/6390/6391为从配置文件必须开启cluster-enabled yes等集群三项核心参数创建集群命令必须填写服务器真实内网IP禁止127.0.0.1--cluster-replicas 1代表每个主分配1台从客户端连接集群需加-c参数开启槽位自动重定向故障规则cluster-require-full-coverageyes时任意一组主从全宕整个集群不可改为no仅对应槽位数据无法访问其余正常。四、集群优缺点优点数据分片突破单机内存与并发瓶颈内置主从复制无需额外部署哨兵无中心化任意节点均可接收客户端请求。缺点跨槽多键、事务存在使用限制部署、运维复杂度高于单机、哨兵架构。五、SpringBoot整合Redis集群引入redis启动器与连接池依赖yml配置集群全部节点地址自定义RedisTemplate使用String序列化key、Jackson序列化value解决乱码模板底层自动完成哈希槽路由无需手动计算。六、三种Redis架构适用场景单机小型项目、本地测试低并发低数据量主从哨兵中小型项目只需高可用无需海量数据扩容Redis集群大型互联网项目高并发、海量缓存需要分布式分片扩容。七、学习总结哈希分片是分布式中间件通用设计思路实操高频踩坑点localhost集群互通失败、忘记-c参数、跨槽执行批量指令哈希槽、集群搭建、架构对比是期末、后端面试核心考点。

相关新闻

Unity编辑器启动优化:一行代码跳过启动画面,提升开发效率

Unity编辑器启动优化:一行代码跳过启动画面,提升开发效率

1. 项目概述:为什么Unity启动Logo会成为开发效率的“拦路虎”?如果你是一个Unity开发者,尤其是项目体量稍大一些,或者像我一样,电脑配置不是顶配,那你一定对这个场景不陌生:双击Unity项目&#…

2026/8/9 17:53:08 阅读更多 →
RM码原理与MATLAB实现:从基础到工程优化

RM码原理与MATLAB实现:从基础到工程优化

1. RM码基础与MATLAB实现概述在通信系统设计中,纠错编码技术是确保信息可靠传输的核心支柱。Reed-Muller码(简称RM码)作为一种经典的线性分组码,以其独特的代数结构和优异的纠错性能,在深空通信、卫星传输等场景中展现…

2026/8/9 17:53:08 阅读更多 →
UnityGameFramework网络模块实战:TCP长连接与多服务器通信架构解析

UnityGameFramework网络模块实战:TCP长连接与多服务器通信架构解析

1. 项目概述:为什么我们需要一个健壮的网络模块?在Unity里做联机游戏,网络通信这块儿绝对是“痛并快乐着”的核心。快乐在于,当玩家在虚拟世界里顺畅互动时,那种成就感无与伦比;痛则在于,从基础…

2026/8/9 17:53:08 阅读更多 →

最新新闻

UE5 GAS GameplayEffect堆叠机制详解:从原理到RPG技能实战

UE5 GAS GameplayEffect堆叠机制详解:从原理到RPG技能实战

1. 项目概述:当RPG技能效果遇上GAS堆叠在UE5里做RPG,最让人头疼也最让人兴奋的部分,往往就是技能系统。你想做一个持续掉血的毒伤,一个能叠加层数的攻击Buff,或者一个随着时间推移效果不断增强的Debuff。如果自己从头手…

2026/8/9 18:39:27 阅读更多 →
实战指南:5步构建企业级可视化编辑器平台

实战指南:5步构建企业级可视化编辑器平台

实战指南:5步构建企业级可视化编辑器平台 【免费下载链接】tmagic-editor 项目地址: https://gitcode.com/GitHub_Trending/tm/tmagic-editor 在当今快速发展的数字产品开发领域,可视化编辑器已成为提升开发效率、降低技术门槛的关键工具。TMagi…

2026/8/9 18:39:27 阅读更多 →
UE5蓝图与C++高效混合开发:架构设计与实战避坑指南

UE5蓝图与C++高效混合开发:架构设计与实战避坑指南

1. 项目概述:蓝图与C,为何要“混”?在Unreal Engine 5的开发社区里,关于“蓝图(Blueprint)还是C”的争论,几乎和“甜咸豆腐脑”一样经久不衰。新手常会困惑:我到底该学哪个&#xff…

2026/8/9 18:39:27 阅读更多 →
Steam挂刀行情站终极指南:24小时自动追踪四大平台饰品价格,轻松找到最佳交易时机!

Steam挂刀行情站终极指南:24小时自动追踪四大平台饰品价格,轻松找到最佳交易时机!

Steam挂刀行情站终极指南:24小时自动追踪四大平台饰品价格,轻松找到最佳交易时机! 【免费下载链接】SteamTradingSiteTracker Steam 挂刀行情站 —— 24小时更新的 BUFF & IGXE & C5 & UUYP & ECO 挂刀比例数据 | Track chea…

2026/8/9 18:39:27 阅读更多 →
SVG资源与工程化应用全指南

SVG资源与工程化应用全指南

1. SVG资源与工具全景指南作为前端开发中不可或缺的矢量图形格式,SVG(Scalable Vector Graphics)凭借其无损缩放、体积小巧和CSS可控等特性,已成为现代Web开发的标准配置。我在多个企业级项目中深度应用SVG后,整理出这…

2026/8/9 18:39:27 阅读更多 →
OptiScaler:打破显卡壁垒,3步实现DLSS、FSR、XeSS技术自由切换

OptiScaler:打破显卡壁垒,3步实现DLSS、FSR、XeSS技术自由切换

OptiScaler:打破显卡壁垒,3步实现DLSS、FSR、XeSS技术自由切换 【免费下载链接】OptiScaler OptiScaler bridges upscaling/frame gen across GPUs. Supports DLSS2/XeSS/FSR2 inputs, replaces native upscalers, enables FSR-FG/XeFG on non-FG titles…

2026/8/9 18:38:27 阅读更多 →

日新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/9 0:45:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →