1、redis集群一共有16384个虚拟slot,被均匀分配到集群里所有redis机器node上;

2、每个node之间可以互相meet操作,都知道彼此slot范围;

3、客户端向redis集群任意node发送命令,相应node使用CRC16加hash算法算出slot,如果slot命中,则返回成功影响,否则返回moved命令和正确的node号;

4、客户端收到moved命令,去目标node读写。

[root@mysql ~]# redis-cli -p 9002
127.0.0.1:9002> cluster keyslot python #计算python的slot
(integer) 7252
127.0.0.1:9002> set python best
OK
127.0.0.1:9002> set hello world      #hello的slot是866 moved产生 告诉客户端是slot 866 192.168.81.100:9003这个node
(error) MOVED 866 192.168.81.100:9003
127.0.0.1:9002> exit

redis集群客户端向目标node发送命令,而此时slot的数据已经发生迁移,则目标node就会发回ask重定向响应。

如图所示,source部分数据已经迁移到target,客户端向source发送命令,source发现slot数据已经迁移到target,就会返回给客户端ask重定向,客户端向target发送asking命令,target返回结果。

20、Redis集群Moved重定向与Ask重定向相关推荐

  1. redis集群moved重定向与redis集群ask重定向

    1.redis集群一共有16384个虚拟slot,被均匀分配到集群里所有redis机器node上: 2.每个node之间可以互相meet操作,都知道彼此slot范围: 3.客户端向redis集群任意n ...

  2. Redis 集群规范(中文稿)(MOVED错误码及ASK错误码

    引言? 这个文档是正在开发中的 Redis 集群功能的规范(specification)文档,文档分为两个部分: 第一部分介绍目前已经在 unstable 分支中实现了的那些功能. 第二部分介绍目前仍 ...

  3. 【Redis实现系列】集群MOVED错误与ASK错误

    键操作与Moved错误 在对数据库中的16384个槽都进行了指派之后,集群就会进入上线状态,这时客户端就可以向集群中的节点发送数据命令了. 实现原理 当客户端向节点发送与数据库键有关的命令时,接收命令 ...

  4. Redis 集群规范(MOVED错误码及ASK错误码)

    引言? 这个文档是正在开发中的 Redis 集群功能的规范(specification)文档,文档分为两个部分: 第一部分介绍目前已经在 unstable 分支中实现了的那些功能. 第二部分介绍目前仍 ...

  5. 代码操作redis集群报错:(error) MOVED 解决方法

    记录一下今天搭建完本地redis集群以后,使用C++代码测试redis集群搭建是否成功. 在初始化.链接等一系列成功后,我开开心心进行写操作: 这时候报错: Run 382 Redis Set Err ...

  6. redis集群报错:(error) MOVED 解决方法

    在使用 redis-cli 连接 redis 集群,进行数据操作时,有报错 ./redis-cli -h 192.24.54.1 -p 6379 -a '123456' 192.24.54.1:637 ...

  7. Redis集群环境搭建实践

    本文是Redis集群学习的实践总结(基于Redis 6.0+),详细介绍逐步搭建Redis集群环境的过程,并完成集群伸缩的实践. Redis集群简介 Redis集群(Redis Cluster) 是R ...

  8. redis 集群 实操 (史上最全、5w字长文)

    文章很长,建议收藏起来慢慢读! 总目录 博客园版 为大家准备了更多的好文章!!!! 推荐:尼恩Java面试宝典(持续更新 + 史上最全 + 面试必备)具体详情,请点击此链接 尼恩Java面试宝典,34 ...

  9. 2W 字详解 Redis 集群环境搭建实践

    点击上方 "终端研发部"关注, 星标或置顶一起成长 本文是Redis集群学习的实践总结(基于Redis 6.0+),详细介绍逐步搭建Redis集群环境的过程,并完成集群伸缩的实践. ...

最新文章

  1. rmd文件怎么转换html文件,提取.Rmd文件的html依赖项(包含htmlwidgets)
  2. GAN和PS合体会怎样?东京大学图像增强新研究:无需配对图像,增强效果还可解释...
  3. 多层神经网络Java代码800行
  4. 使用VS2013编译Lua5.3.2
  5. vsftp 具体操作
  6. 经典商务未来科技海报PSD分层模板,以后绝对用得上
  7. 简单的豆瓣电影推荐系统demo
  8. php ob系列的函数
  9. mysql jdbc8.0驱动包下载_JDBC驱动jar包|JDBC驱动(mysql connector java)下载v8.0.11安装包 - 欧普软件下载...
  10. WIN10在服务器上找不到共享打印机,win10搜索不到共享打印机怎么办
  11. 【电源干货】你的电源模块选对了吗?7招教会你!
  12. Oracle导出数据中的prompt,set feedback 等是什么意思
  13. 路虎:独到所处,揽胜极致.
  14. 黑发奶奶曾世鑫的养生经
  15. matlab kmo检验,RPCL(Rival Penalized Competitive Learning)在matlab下的实现
  16. 字符数组与字符串处理函数
  17. 装饰模式实例与解析 实例一:变形金刚
  18. 2020.11.05 使用OpenCV进行自定义线性滤波 【OpenCV C++ Robert/Sobel/Laplace】
  19. 达梦DMHS中Oracle到达梦veri数据对比
  20. 利用wxid批量加好友

热门文章

  1. 清华大学计算机周建宇,一曲高歌征服清华考官
  2. 【观察】戴尔Lati:以“叠加态”价值新主张,引领智慧办公新时代
  3. Android Dialer源码分析之拨号主界面ListsFragment
  4. python计算椭球面积代码_使用ArcPy如何计算面图层的椭球面积?
  5. 微信小程序 NFC HCE卡模拟
  6. ipad可以使用其他品牌的手写笔吗?apple pencil一代平替笔
  7. python-tkinter(7) 实现各种个样的撩妹鼠标拖尾
  8. .Net工程师面试笔试宝典
  9. element ui DatePicker 日期选择器 限制只能选择今天之前或者之后
  10. 公链应用争夺战:未来区块链生态真的“根特多,叶子少”?