复制

旧版Redis的复制功能分为同步(sync)和命令传播两个操作。

sync:是一个非常耗费资源的操作                                           命令传播:

新版复制解决了旧版复制功能在处理断线重复制情况时的低效问题,使用PSYNC替代SYNC命令来执行复制的同步工作。

PSYNC命令具有完整重同步和部分重同步,完整重同步与sync类似,部分重同步如下:

部分重同步的实现

复制偏移量:

复制积压缓冲区:

复制积压缓冲区是由主服务器维护的一个固定长度先进先出队列,默认大小为1MB。

PSYNC实现流程:

总结:

Sentinel

Sentinel(哨兵)是redis的高可用(high avaliability)解决方案:由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,当主服务器下线,自动升级一个从服务器为主服务器,代替已下线服务器接受命令。

集群

节点

槽指派

在集群中执行命令

在对数据库中的16384个槽都进行了指派之后,集群会进入上线状态,这时客户端就可以向集群中的节点发送数据命令了。

重新分片

Redis集群的重新分片操作可以将任意数量已经指派给某个源节点的槽改为指派给另一个目标节点,并且相关槽所属的键值对也会从源节点移动到目标节点。

复制和故障转移

Redis集群中的节点分为主节点和从节点,其中主节点用于处理槽,而从节点主要用于复制某个主节点,并在被复制的主节点下线时,代替下线主节点继续处理命令请求。

其中7000,7001,7002,7003为主节点,而7004,7005为从节点。

消息

MEET消息:发送者会向接受者发送MEET消息,请求接受者加入到发送者当前所处的集群里面。

PING消息:检查检点是否在线。

PONG消息:回应消息。

FAIL消息:当主节点A判断主节点B已经进入FAIL状态,节点A向集群广播一条关于节点B的FAIL消息,收到消息的节点都会立即将节点B标记为下线。

PUBLISH消息:当节点收到该命令,则执行,并广播一条PUBLISH命令,所有收到消息的节点都会执行相同的命令。

最新文章

  1. js压缩图片base64长度
  2. js刷新框架子页面的七种方法代码
  3. 一键编译go文件命令.bat
  4. java提高篇(六)-----使用序列化实现对象的拷贝
  5. Struts2工作原理
  6. angular学习资源
  7. css 关于两栏布局,左边固定,右边自适应
  8. VMware系统运维(七)vCenter Inventory Server安装
  9. struts启动报错Javassist library is missing
  10. ArcGIS 设置地图显示范围大小
  11. Robot FrameWork 教程链接
  12. ANDROID 中设计模式的採用--创建型模式
  13. JUnit使用参数测试和一组测试
  14. win10下python环境变量设置
  15. 其他shell
  16. Rarely executed and almost empty if statement drastically reduces performance in C++
  17. Luogu P3327 [SDOI2015]约数个数和
  18. logback异步输出日志(生产者消费者模型),并非批量写入日志。
  19. 尚硅谷面试第一季-09SpringMVC中如何解决POST请求中文乱码问题GET的又如何处理呢
  20. Maven为不同环境配置打包

热门文章

  1. python-元类和使用元类实现简单的ORM
  2. Go操作腾讯云COS对象存储的简单使用案例
  3. Python编程入门(第3版)|百度网盘免费下载|零基础入门学习资料
  4. 如何获取论文的 idea
  5. ffmpeg获取视频封面图片
  6. 「从零单排canal 06」 instance模块源码解析
  7. Pandas 复习2
  8. PHP - AJAX 与 MySQL-AJAX 数据库实例
  9. PHP fopen() 函数
  10. 6.3 省选模拟赛 Decompose 动态dp 树链剖分 set