首页 > 数据库 >016redis3.0集群简介

016redis3.0集群简介

时间:2023-04-03 21:37:22浏览次数:44  
标签:016redis3.0 简介 redis cluster 集群 哈希 master 节点


一、基本概念


1、redis集群是一个可以在多个节点之间进行数据共享的设施。redis集群提供了以下两个好处


1.1 将数据自动切分(split)到多个节点


1.2 当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。


2、一个 Redis 集群包含 16384 个哈希槽(hash slot),数据库中的每个数据都属于这16384个哈希槽中的一个。集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽。集群中的每一个节点负责处理一部分哈希槽。这样的话就可以很方便的向集群中添加或者移除节点。(假设集群中有A B C 三个节点)


2.1 添加节点:如果要添加一个D节点到集群中,首先要把这个节点添加到集群,然后还需要将节点ABC中的某些哈希槽移动到节点D。
2.2 移除节点:如果要移除节点A,那么只需要把节点A中的所有哈希槽转移到节点B和节点C中,然后再移除空白节点A就可以了。



3、集群中的主从复制
集群中的每个节点都有1个至N个复制品,其中一个为主节点,其余的为从节点,如果主节点下线了,集群就会把这个主节点的一个从节点设置为新的主节点,继续工作。这样集群就不会因为一个主节点的下线而无法正常工作。
注意:如果某一个主节点和他所有的从节点都下线的话,redis集群就会停止工作了。


4、redis集群不保证数据的强一致性,在特定的情况下,redis集群会丢失已经被执行过的写命令


4.1 使用异步复制(asynchronous replication)是 Redis 集群可能会丢失写命令的其中一个原因


4.2 网络原因,如果网络断开时间太长,redis集群就会启用新的主节点,之前发给主节点的数据就会丢失。



二、redis cluster 现状


reids-cluster计划在redis3.0中推出,可以看作者antirez的声明:http://antirez.com/news/49 (ps:跳票了好久,今年貌似加快速度了),目前的最新版本见:https://raw.githubusercontent.com/antirez/redis/3.0/00-RELEASENOTES

作者的目标:Redis Cluster will support up to ~1000 nodes. 赞...

目前redis支持的cluster特性(已测试):

1):节点自动发现

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

3):Hot resharding:在线分片

4):集群管理:cluster xxx

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

6):ASK 转向/MOVED 转向机制


三 redis cluster 架构


1)redis-cluster架构图

 

016redis3.0集群简介_redis

架构细节:

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

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

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

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

2) redis-cluster选举:容错

 

016redis3.0集群简介_客户端_02

(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://hot66hot.iteye.com/blog/2050676

标签:016redis3.0,简介,redis,cluster,集群,哈希,master,节点
From: https://blog.51cto.com/u_14361901/6167552

相关文章

  • 搭建redis主从复制集群环境时,当从库执行slaveof命令时报错“Error condition on socke
    问题描述:搭建redis主从复制集群环境时,当从库执行slaveof命令时报错“ErrorconditiononsocketforSYNC:Noroutetohost”,如下所示:操作系统:rhel7.964位数据库:redis6.2.6主机名:主库leo-redis626-a,从库leo-redis626-b.1、异常重现[[email protected]]#p......
  • redis主从复制集群环境搭建
    文档课题:redis主从复制集群环境搭建.操作系统:rhel7.964位数据库:redis6.2.6主机名:主库leo-redis626-a,从库1leo-redis626-b,从库2leo-redis626-cIP信息:主库192.168.133.100,从库1192.168.133.101,从库2192.168.133.102端口号:主库6379,从库16380,从库263811、拓扑结构2......
  • 进程间通信的概念-简介
    进程间通信的概念进程是一个独立的资源分配单元,不同进程(这里所说的进程通常是指用户进程)之间的资源是独立的,没有关联。不能在一个进程中访问另一个进程的资源。但是,进程不是孤立的,不同的进程需要进行信息的交互和状态的传递等,因此需要进程间通信(IPC:InterprocessesCommunica......
  • 第6章 Memsos简介
    6.2Mesos的架构与核心6.2.1Mesos的设计与架构作为分布式数据中心操作系统的内核,Mesos统一管理所有资源,并对这些资源进行分配和调度。下层是提供资源的基础设施层(分布式文件系统、共享存储、裸机、虚拟机、云等);上层是使用Msos提供资源的应用框架。应用框架根据功能定位的不同......
  • redis集群简介
     1.1       集群的概念所谓的集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态。1.1.1      使用redis集群的必要性问题:我们已经部署好了redis,并且能启动一个redis,实现数据的读写,为什么还要学习redis集群?答:(1)单个redis存在......
  • 智能且集成的端到端移动应用程序安全解决方案——Quixxi简介
    移动应用程序安全变得简单快捷Quixxi是一种智能且集成的端到端移动应用程序安全解决方案。这个强大的工具可供开发人员在几分钟内保护和监控任何移动应用程序。 QuixxiSecurity评估应用程序,以便您了解它们有哪些漏洞。它允许您对应用程序进行渗透测试,并在应用程序周围放置......
  • Linux内核简介
    下面几个特点是Unix强大的根本原因Unix很简洁,Unix仅仅提供了几百个系统调用并且有一个非常明确的设计目的。在Unix中,所有东西都被当作文件对待。Unix的内核和相关的系统工具软件是用C语言编写而成--正是这个特点使得Unix在各种硬件体系架构面前都具有惊人的移植能力。Unix......
  • kubernetes rabbimq3.11.11集群之mqtt插件
    1.概述本文是总结给予k8s的rabbitmq3.11.11集群的mqtt搭建rabbitmq集群搭建详见前一篇文章:kubernetes集群部署rabbimq3.11.112.自动创建mqtt账号密码wrapper-entrypoint.sh#!/usr/bin/envbash(sleep20;\admin_user=bbbbbb;\admin_passwd=111111;\rabbitmq......
  • Elasticsearch系列-Elasticsearch集群工作原理
    引言ELasticsearch作为一个分布式搜索引擎,能够出色地支持集群模式、动态水平扩容、故障转移等分布式系统特性,这是其作为全文搜索引擎首选的重要原因。本文从零开始描述集群的配置和扩容过程,让你对Elasticsearch集群的工作原理有初步的理解。首先,一个Elasticsearch集群时由多个节点......
  • redis哨兵和集群
     一、redis哨兵主从切换技术的方法是:当服务器宕机后,需要手动一台从机切换为主机,这需要人工干预,不仅费时费力而且还会造成一段时间内服务不可用。为了解决主从复制的缺点,就有了哨兵机制。 哨兵的核心功能:在主从复制的基础上,哨兵引入了主节点的自动故障转移。 1、哨兵模式......