当前位置:网站首页>redis集群的重新分片与ASK命令
redis集群的重新分片与ASK命令
2022-06-26 14:38:00 【华为云】
redis集群的重新分片与ASK命令
redis的重新切片是将时隙位从一个节点分配到另一个节点,还传输时隙所在的键值对。
切片原理
redis群集的分片由redis-trib管理。
首先,向目标节点发送import命令,当目标节点准备导入属于此插槽的密钥-值对时,发送migrating命令,源节点准备存放此插槽的密钥-值对从源节点获取要转移的密钥,发送migrate命令以转移密钥,并在知道所有密钥都已转移后,redis-trib向群集的任何节点发送node命令以抛出目标节点这个信息
import命令将目标节点的clusterState结构的importing_slots_from数组中相应槽位的元素的值更改为源目标的clusterNode结构,而migrating命令
ASK命令
在重新切片期间,当客户端发送与数据库密钥相关的命令时,该密钥正在迁移。 此时,源节点首先查看其数据库中是否存在,如果返回到不存在的源节点,则返回ASK命令错误消息,将客户端引导到目标节点,然后再次发送上一个命令。 ASK命令在集群环境中也同样隐藏。 如果客户端收到ASK错误并将其移动到正在导入的插槽中的节点,则客户端必须发送ASKING命令才能重新发送特定密钥操作的命令。 如果不发送,节点将被拒绝,并返回MOVED错误。 ASKING命令打开发送命令的客户端的REDIS_ASKING。 此id是一次性id,运行一次命令将删除该id。
ASK命令和MOVED命令的区别
ASK命令和MOVED命令的区别在于,MOVED错误从对该槽位负有责任的节点转移到另一个节点,在以后遇到该槽位的命令时直接向负责该槽位的节点发送命令请求。 ASK错误是在两个节点迁移期间使用的临时方案,在发生ASK错误后,该槽位的命令请求仍被发送到当前负责该槽位的节点。
总结
今天主要对Redis的重新分片进行了分析,如果这篇文章帮助到了你,给我点个赞吧~
️ 感谢大家
如果你觉得这篇内容对你挺有有帮助的话:
- 欢迎关注我️,点赞,评论,转发
- 关注
盼盼小课堂,定期为你推送好文,还有群聊不定期抽奖活动,可以畅所欲言,与大神们一起交流,一起学习。 - 有不当之处欢迎批评指正。
边栏推荐
- 房东拿租金去还房贷是天经地义的嘛
- 使用 Abp.Zero 搭建第三方登录模块(二):服务端开发
- 工作上对金额价格类小数点的总结以及坑
- Mark一下 Unity3d在Inspector中选中不了资源即Project锁定问题
- Datasets dataset class (2)
- [cloud native] codeless IVX editor programmable by "everyone"
- Is the account opening link given by the broker manager safe? Who can I open an account with?
- Electron
- Declaration and assignment of go variables
- 15 bs对象.节点名称.节点名称.string 获取嵌套节点内容
猜你喜欢

Common evaluation indexes of classification model -- confusion matrix and ROC curve

【使用yarn运行报错】The engine “node“ is incompatible with this module.

Use abp Zero builds a third-party login module (II): server development

在云服务器中云磁盘如何挂载

赠书 | 《认知控制》:我们的大脑如何完成任务?

Solution to the upper limit of TeamViewer display devices

详解C语言编程题:任意三条边能否构成三角形,输出该三角形面积并判断其类型

15 bs对象.节点名称.节点名称.string 获取嵌套节点内容

备战数学建模30-回归分析2

Electron
随机推荐
C语言刷题随记 —— 乒乓球比赛
(improved) bubble sorting and (improved) cocktail sorting
通俗语言说BM3D
View触摸分析
工作上对金额价格类小数点的总结以及坑
Electron
Numpy基本使用
聊聊 RPA 方向的规划:简单有价值的事情长期坚持做
It's natural for the landlord to take the rent to repay the mortgage
oracle11g数据库导入导出方法教程[通俗易懂]
qt下多个子控件信号槽绑定方法
R语言epiDisplay包的dotplot函数通过点图的形式可视化不同区间数据点的频率、使用by参数指定分组参数可视化不同分组的点图分布、使用cex.X.axis参数指定X轴轴刻度数值标签字体的大小
MySQL主从复制与读写分离
R语言dplyr包intersect函数获取在两个dataframe中都存在的数据行、获取两个dataframe交叉的数据行
nvidia-smi 报错
Question bank and answers of the latest Guizhou construction eight (Mechanics) simulated examination in 2022
PostGIS create spatial database
Leaflet load day map
Keil4打开单片机工程一片空白,cpu100%程序卡死的问题解决
Matplotlib common operations