redis集群相关资料

redis集群相关资料

Cluster简介

        Redis 3.0引入的cluster。cluster是具有有自动数据分片、容错、针对读取速度有了显著的提升、改进了AOF重写等的redis分布式实现。

    Redis 集群是一个分布式(distributed)、容错(fault-tolerant)的 Redis 实现, 集群可以使用的功能是普通单机 Redis 所能使用的功能的一个子集(subset)。

    Redis 集群中不存在中心(central)节点或者代理(proxy)节点, 集群的其中一个主要设计目标是达到线性可扩展性(linear scalability)。

    Redis 集群为了保证一致性(consistency)而牺牲了一部分容错性: 系统会在保证对网络断线(net split)和节点失效(node failure)具有有限(limited)抵抗力的前提下, 尽可能地保持数据的一致性。


目前支持的集群特性

  1. 节点自动发现

  2. slave->master 选举,集群容错

  3. Hot resharding:在线分片

  4. 集群管理

  5. 基于配置(nodes-port.conf)的集群管理

  6. ASK 转向/MOVED 转向机制.


redis cluster 架构

08113628_EjyV.jpg

架构细节:

(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.

(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.

(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可

(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value


redis-cluster选举:容错

08113628_zAw6.jpg

(1)选举过程是集群中所有master参与,如果半数以上master节点与master节点通信超时(cluster-node-timeout),认为当前master节点挂掉.

(2):什么时候整个集群不可用(cluster_state:fail)? 

    a:如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成集群的slot映射[0-16383]不完成时进入fail状态. ps : redis-3.0.0.rc1加入cluster-require-full-coverage参数,默认关闭,打开集群兼容部分失败.

    b:如果集群超过半数以上master挂掉,无论是否有slave集群进入fail状态.

  ps:当集群不可用时,所有对集群的操作做都不可用,收到((error) CLUSTERDOWN The cluster is down)错误


参考

http://redisdoc.com/


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109022.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月14日 下午10:00
下一篇 2021年9月14日 下午11:00


相关推荐

  • uniapp – 腾讯云点播小程序插件

    uniapp – 腾讯云点播小程序插件欢迎关注微信公众号 FSA 全栈行动 一 简介微信小程序播放教育类视频要求具备有相关资质 但这些资质一般公司很难短时间申请下来 甚至有的公司压根就申请不了 而 短视频播放器小程序插件 含有 信息网络传播视听节目许可证 的资质证书备案 可以利用该插件来解决资质问题 相关截图如下 图片来源 https cloud tencent com document product 266 36849 采购流程于技术无关 以下内容着重讲解如何集成该微信小程序插件 注 短视频播放器小程序插件 授权

    2026年3月18日
    4
  • Python体系练手项目200例(附源代码),练完可显著提升python水平(鲲鹏编程–Python教育新物种)

    个人公众号yk坤帝后台回复项目一获取整理资源1.十转二2.十转八3十转十六4.字符串转字节5.转为字符串6.十转ASCII7.ASCII转十8.转为字典9.转为浮点类型10.转为整型11.转为集合12.转为切片13.转元组14.转冻结集合15.商和余数16.幂和余17.四舍五入19.门牌号18查看变量所占字节数20.排序函数21.求和函数22.计算表达式23.真假24.都为真25.至少一个为真26.获取用户输入27.print用法

    2022年4月5日
    53
  • Elon Musk:同一时候颠覆几个行业的科技狂人

    Elon Musk:同一时候颠覆几个行业的科技狂人

    2021年12月2日
    46
  • SQL PRO 激活码[在线序列号]「建议收藏」

    SQL PRO 激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    47
  • 怎样将Sublime Text 设置成中文版(完整教程)「建议收藏」

    怎样将Sublime Text 设置成中文版(完整教程)「建议收藏」1.打开SublimeText,使用快捷键Shift+Ctrl+P,弹出查找栏,如图:2.在搜索框中输入关键字install,出现下拉选项,选择其中的:PackageControl:InstallPackage,如图:(PS:…

    2022年7月11日
    19
  • cglib代理[通俗易懂]

    cglib代理[通俗易懂]cglib代理​ 在此之前,我们学习了JDK动态代理,而JDK动态代理有一定的局限性,因为使用JDK动态代理时,被代理类必须实现接口,然后动态代理生成的代理类同时实现该接口实现代理模式,但在特定情况下没办法让被代理类实现接口,那么此时我们就需要使用cglib代理。代理模式的三要素两个成员:被代理对象、执行者(类似于Spring中切面的概念)使用场景:当某件事情不方便自己做,但是必须要做时…

    2022年5月6日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号