`

Redis Cluster原理

阅读更多

Redis Cluster 是Redis的集群实现,内置数据自动分片机制,集群内部将所有的key映射到16384个Slot中,集群中的每个Redis Instance负责其中的一部分的Slot的读写。

 

集群客户端连接集群中任一Redis Instance即可发送命令,当Redis Instance收到自己不负责的Slot的请求时,会将负责请求Key所在Slot的Redis Instance地址返回给客户端,客户端收到后自动将原请求重新发往这个地址,对外部透明。一个Key到底属于哪个Slot由crc16(key) % 16384 决定。

 

 

  关于负载均衡,集群的Redis Instance之间可以迁移数据,以Slot为单位,但不是自动的,需要外部命令触发。

 

 

  关于集群成员管理,集群的节点(Redis Instance)和节点之间两两定期交换集群内节点信息并且更新,从发送节点的角度看,这些信息包括:集群内有哪些节点,IP和PORT是什么,节点名字是什么,节点的状态(比如OK,PFAIL,FAIL,后面详述)是什么,包括节点角色(master 或者 slave)等。

 

 

  关于可用性,集群由N组主从Redis Instance组成。主可以没有从,但是没有从 意味着主宕机后主负责的Slot读写服务不可用。一个主可以有多个从,主宕机时,某个从会被提升为主,具体哪个从被提升为主,协议类似于Raft,参见这里。如何检测主宕机?Redis Cluster采用quorum+心跳的机制。从节点的角度看,节点会定期给其他所有的节点发送Ping,cluster-node-timeout(可配置,秒级)时间内没有收到对方的回复,则单方面认为对端节点宕机,将该节点标为PFAIL状态。通过节点之间交换信息收集到quorum个节点都认为这个节点为PFAIL,则将该节点标记为FAIL,并且将其发送给其他所有节点,其他所有节点收到后立即认为该节点宕机。从这里可以看出,主宕机后,至少cluster-node-timeout时间内该主所负责的Slot的读写服务不可用。

分享到:
评论

相关推荐

    Redis Cluster的实现机制和原理

    ### Redis Cluster 的实现机制与原理 #### 集群的核心目标与特性 Redis Cluster 是 Redis 数据库的一个分布式版本,旨在解决单个 Redis 实例在处理大量数据和高并发请求时的局限性。其核心目标包括: 1. **高性能...

    rediscluster.rar

    本文将详细介绍Redis Cluster的工作原理、配置、使用以及与MySQL数据库的配合。 **一、Redis Cluster概述** Redis Cluster是一个无中心架构的分布式系统,每个节点都是平等的,它们共同维护整个数据集。通过数据分...

    RedisCluster集群(Spring访问Redis)

    本文将详细介绍RedisCluster集群的架构及原理,并探讨如何通过Spring Data Redis模块实现对Redis Cluster的访问。 ### 1. RedisCluster集群概述 Redis Cluster是Redis官方提供的分布式解决方案,它将数据分片到多...

    25_你能聊聊redis cluster集群模式的原理吗?.zip

    在Java开发中,了解和掌握Redis Cluster的原理和使用方法对于构建高效、稳定的分布式系统至关重要。 一、Redis Cluster的节点通信机制 Redis Cluster中的每个节点都维护着全量的节点信息,包括其他节点的IP地址、...

    redis_cluster实战栗子.rar

    Redis Cluster是Redis官方提供的分布式解决方案,它通过将数据分片(sharding)到多个节点来...通过本实战栗子的学习,你不仅可以了解其工作原理,还能掌握实际操作技巧,从而在实际工作中有效地应用Redis Cluster。

    Redis-Cluster20161110

    【Redis-Cluster20161110】是一个关于Redis集群的资料包,发布于2016年11月10日。这个压缩包包含了一些用于启动和管理Redis集群的工具,以及Redis服务器的安装文件。让我们深入探讨Redis Cluster及其相关知识点。 *...

    03-Redis Cluster集群运维与核心原理剖析.zip

    本资料包包含了对Redis Cluster的运维实践和核心原理的深入剖析,旨在帮助读者理解并掌握如何有效地部署、管理和优化Redis Cluster。 1. **Redis Cluster的分片机制** Redis Cluster采用一致性哈希(Consistent ...

    Windows环境Redis-Cluster配置

    在Windows环境中配置Redis-Cluster,首先需要理解其基本概念和工作原理,然后按照步骤进行安装和配置。 一、Redis-Cluster基础知识 1. 分片(Sharding):Redis-Cluster通过将数据分割成多个片段(slots),并将...

    redis sentinel与redis cluster 集群配置

    Redis Sentinel和Redis Cluster是两种常见的Redis集群解决方案,用于提高Redis数据库的可用性和可扩展性。在本篇文章中,我们将深入探讨这两个系统的工作原理、配置步骤以及它们各自的特点。 首先,让我们了解一下...

    RedisCluster集群搭建代码及相应软件

    总结,本压缩包提供的资源使你能够在本地快速搭建一个简单的RedisCluster测试环境,了解其工作原理和操作方式。在实际生产环境中,你需要考虑网络配置、持久化策略、故障转移机制等更复杂的因素。

    【Redis】Redis Cluster-集群故障转移.doc

    下面将详细介绍 Redis Cluster 集群故障转移机制的工作原理。 集群故障转移机制 Redis Cluster 集群故障转移机制主要通过集群定时任务 clusterCron 来实现。clusterCron 会遍历集群中的节点,对每个节点进行检查,...

    redis-cluster.tar.gz

    Redis 是一个高性能的键值数据库,常用于数据缓存、消息队列以及数据库等功能。...通过深入理解 Redis Cluster 的工作原理和使用方法,你可以更好地优化和利用 Redis 在大数据量场景下的性能优势。

    Redis核心原理与应用实践.docx

    2. Redis Cluster:Redis Cluster 是 Redis 官方提供的集群解决方案,能够提供高可用性和高性能的服务。 Redis 源码分析 Redis 的源码分析是指对 Redis 的源代码进行深入的分析和研究,了解 Redis 的内部实现机制...

    redis-cluster开箱即用作者已经实验

    Redis Cluster是Redis官方提供的分布式解决方案,它通过分片(sharding)技术将数据分散存储在多个节点上,实现了数据的高可用性和...在使用过程中,确保熟悉Redis Cluster的工作原理和限制,以便更好地优化你的应用。

    redis-cluster-5.0.7.tar.gz

    理解Redis Cluster的工作原理和配置细节对于成功部署和管理高可用的Redis服务至关重要。通过深入学习和实践,你将能够充分利用Redis Cluster的强大功能,为你的应用提供高效、可靠的内存数据存储。

    redis cluster集群

    Redis Cluster是Redis官方提供的分布式解决方案,它通过分片(Sharding)...理解其工作原理和部署细节,是充分发挥Redis Cluster优势的关键。在实际应用中,还需要考虑监控、备份、安全等方面,以确保系统的稳定运行。

    Redis Cluster的图文讲解

    【Redis Cluster简介】 Redis Cluster是Redis官方提供的分布式集群解决方案,自Redis 3.0版本开始引入。它旨在解决单个Redis...了解和掌握Redis Cluster的原理和操作,对于构建可扩展、高可用的Redis应用至关重要。

    Redis Cluster集群数据分片机制原理

    Redis Cluster 是 Redis 为应对大规模数据存储需求而推出的分布式解决方案,自 3.0 版本开始引入。Redis Cluster 集群通过数据分片(Sharding)技术实现了数据的分布式存储,允许用户水平扩展存储能力,同时保持高...

Global site tag (gtag.js) - Google Analytics