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

【Redis】Redis分布式缓存 - 分片集群

分片集群不再具有哨兵集群。

散列插槽

Redis会把每一个master节点映射到 0 - 16383(2^14 -1) 插槽上(Hash Slot)上,查看集群信息时就能看到对应信息。
在这里插入图片描述
数据key不是与节点绑定,而是与插槽绑定。Redis会根据key的有效部分计算插槽值。
key的有效部分为两种:

  • key中包含"{}",且”{}“中至少包含1个字符,那么{}中的部分就是有效部分。
  • key中不包含{},整个key都是有效部分。

计算方式:利用CRC16算法得到一个hash值,然后对16384取余,得到的结果就是slot值。

做插槽的原因是:如果集群的master节点进行了扩容,那么分配到新节点上对应的插槽的数据会一并迁移到新节点中。也就是数据和插槽绑定,这样对于数据可以更好的进行分片。

Redis如何判断某个key应该在哪个实例上?
通过对key计算hash值并对16384取余,余数就是插槽,寻找插槽所在的实例即可。

如何将同一类数据固定的保存在同一Redis实例中?
同一类的数据使用相同的有效部分,并使用{},也就是设置同类数据的有效部分相同。

集群伸缩

添加节点命令:

#默认是添加一个主节点
add-node 
#添加一个从节点--cluster-slave

案例:向集群中添加一个新的master节点,并向其中存储num=10
需求:启动一个Redis实例,端口号为7004
添加7004到之前的集群,并作为一个master节点
给7004节点分配插槽,使得num这个key可以存储到7004实例上。

案例的难点在于如何在对应num的插槽恰好分配到新节点上。

首先确定num对应的插槽【2765】

#添加节点:这里的前面的IP:端口号为新节点所在的  后面的为集群中的已存在的节点
redis-cli --cluster add-node IP:端口号 IP:端口号
#重新分片:这里的IP:端口号为被分片的
redis-cli --cluster reshard IP:端口号
#指定插槽号
How many solts do you want to move(from 1 to 16384)?
3000

在这里插入图片描述

故障转移

演示脚本:

#当前7002为主节点
redis-cli -p 7002 shutdown
#重启7002
redis-server 7002/redis.conf

当集群中有一个master节点宕机会发生什么?
会进行自动故障转移:
1、当前实例会与其他实例失去连接
2、疑似宕机
在这里插入图片描述
3、确定下线,自动提升一个slave为新的master
在这里插入图片描述
那么如何进行手动故障转移?
1、首先进行数据迁移
利用cluster failover命令可以手动让集群中的某个master节点宕机,切换到执行cluster failover命令的这个slave节点,实现无感知的数据迁移。
在这里插入图片描述
在这里插入图片描述
案例:让7002夺回master节点权

#在7002执行
cluster failover

使用RedisTemplate访问分片集群

底层基于lettuce实现了分片集群的支持,使用步骤和烧心哨兵模式基本一致:
在这里插入图片描述
读写分离:验证

http://www.dtcms.com/a/589485.html

相关文章:

  • 论基层门户网站的建设vi设计手册完整版案例
  • Spring AI调用MCP服务
  • Goer系列-1-Docker基础命令学习
  • Tauri快速搭建环境
  • 光的压缩态:突破量子极限的 “超精准光源” 科普详解
  • 【C++】分治-归并排序算法习题
  • 网站开发服务合同印花税wordpress主题微博
  • 网站 功能呢杭州如何设计公司网站
  • Ansys SAM 与 Scade One:重塑安全关键系统开发的 MBSE 新范式
  • ADC的学习
  • 【智能体】扣子平台 ① 构建智能体工作流:从提示词到JSON配置的全流程实践
  • GitHub 热榜项目 - 日榜(2025-11-08)
  • 20_FastMCP 2.x 中文文档之FastMCP服务端认证:令牌验证详解
  • 缅甸最新消息seo数据分析哪些方面
  • 2.6 LoRA 微调实战(使用 PEFT 库)
  • 建设电子商务网站的目的公司企业网站建设方案书
  • 项目三:信息抽取与图谱问答(医疗科研文献知识图谱与智能问答平台)
  • Sequelize:获取器, 设置器 虚拟字段
  • DINOv3的学习
  • 建网站需要哪些费用温州微信网站开发
  • 数据结构精讲:从栈的定义到链式实现,再到LeetCode实战
  • MediaPipe入门指南:跨平台机器学习推理框架入门与实践
  • 西安高端网站开发郑州外贸网络推广
  • C 错误处理
  • seo专业培训费用自媒体seo优化
  • 做的网站百度没收录wordpress后台登陆界面
  • 基于430单片机多用途定时提醒器设计
  • 【C++】Reactor和Proactor
  • MCP概念及NetSuite应用与拓展
  • 深圳外贸网站建设公司帮别人做网站开价