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


相关推荐

  • Linux系统RWX权限规则[通俗易懂]

    Linux系统RWX权限规则[通俗易懂]话不多说,先了解一下文件所对应的书写字段:其中:-rw-r–r–1rootroot0Nov3014:46a.txt1、新增一个文件test.txt,并该文件对任何人都没有任何权限:root@lhb:~#chmodu=,g=,o=test.txtroot@lhb:~#ls-ltest.txt———-1rootro

    2022年5月10日
    45
  • python gui设计 tkinter菜鸟编程_三菱简单运动控制模块教程

    python gui设计 tkinter菜鸟编程_三菱简单运动控制模块教程学习tkinter之余,实现了一个简单的计算器操作,能够满足页面输入参数和计算得到结果

    2022年8月11日
    10
  • 跟我学交换机配置(四)

    跟我学交换机配置(四)

    2021年7月31日
    61
  • android gradle下载慢的解决方法

    android gradle下载慢的解决方法用androidstudio开发时,导入的项目经常会用到各种gradle版本,不知道为何androidstudio下载gradle极慢,最后总是失败。https://services.gradle.org/distributions/这是gradle各版本的官方网站。在这网站上下载速度很快。下载的文件放哪里呢?放到以下对应的目录中。C:\Users\admin\.gradle\wrapper\dists\gradle-6.7-all\cuy9mc7upwgwgeb72wkcrup

    2022年6月24日
    33
  • i2c总线的通信协议(i2c通信协议原理)

    I2C总线支持设备之间的短距离通信,它只需要两根信号线来完成信息交换。I2C最早是飞利浦在1982年开发设计并用于自己的芯片上,一开始只允许100kHz、7-bit标准地址。1992年,I2C的第一个公共规范发行,增加了400kHz的快速模式以及10-bit扩展地址。在I2C的基础上,1995年Intel提出了“SystemManagemen

    2022年4月14日
    199
  • 后台 管理 系统

    后台 管理 系统课程/视频管理系统:https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.50111deb1nO3pa&ft=t&id=643539140484教务管理系统:https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.50111deb1nO3pa&ft=t&id=643539140484成绩管理系统:https://item.taobao.com/item.h

    2022年4月25日
    43

发表回复

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

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