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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 黑苹果从入门到精通:最详细的VMware安装macOS教程[通俗易懂]

    黑苹果从入门到精通:最详细的VMware安装macOS教程[通俗易懂]前言不知为何,以前我发的两篇关于黑苹果的文章或没过审或被删除,最近SMZDM上有不少优质的黑苹果文章发出来,貌似禁令已开,前段时间在一篇写的很不错的黑果文章下吹牛说今年要写一个系列,故有了这篇文章作为系列的开头。系列的名字起的有点俗,叫做xxx从入门到精通,但是我很喜欢,相信过半的黑果群众都是程序员,作为教程来说这个名字俗但是好用,我也希望这个系列能像其它入门到精通系列一样,让大家学到东西…

    2022年5月7日
    74
  • Python正则表达式保姆式教学,带你精通大名鼎鼎的正则!

    Python正则表达式保姆式教学,带你精通大名鼎鼎的正则!1文带你精通Python中的正则表达式!

    2022年5月17日
    33
  • NET Framework 类库 OleDbCommand 成员

    NET Framework 类库 OleDbCommand 成员公共构造函数OleDbCommand构造函数已重载。初始化OleDbCommand类的新实例。公共属性CommandText获取或设置要对数据源执行的SQL

    2022年5月19日
    41
  • SpringBoot热部署(IDEA 2109 )「建议收藏」

    SpringBoot热部署(IDEA 2109 )「建议收藏」SpringBoot热部署(IDEA 2109 )

    2022年4月23日
    65
  • 实验室仪器管理系统_实验室设备管理系统代码

    实验室仪器管理系统_实验室设备管理系统代码实验室设备管理系统主要包括:实验室设备信息的管理模块,实验室设备信息的浏览查询模块,设备事故记录模块,设备资料管理模块设备的损坏管理模块,设备损坏信息浏览查询,设备类别设置,系统用户的管理。通过本系统,可以更加有效的管理学生实验室设备信息开发技术:php,mysql,apache课题名称:实验室设备管理系统1)系统简介每学年要对实验室设备使用情况进行统计、更新。其中:(1)对于已彻底损坏的做报废处理,同时详细记录有关信息。(2)对于由严重问题(故障)的要及时修理,并记录修理日期、设备名、编号

    2022年10月13日
    4
  • 突破思维的障碍

    突破思维的障碍译者的话   在众多的讲述思维及创造性的书中,这是一本普通的小册子,但它却是吸引人的。作者用妙趣横生而又日常可见的素材向我们娓娓叙说了人人都会关心的问题,即我们是否意识到自己的思维障碍,怎样克服它,让自己变得更富有创造活力。   这本书在美国一版再版,风靡一时,拥有广泛的读者,无论是从事研究工作的高级学者、研究人员,还是从事行政、工商和管理活动的人士或普通学生。相信本书与中国读者的见面

    2022年5月5日
    36

发表回复

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

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