深入解析Redis——集群

Redis 集群通过分片技术处理大数据量,提供复制和故障转移功能。节点间通过 Gossip 协议交换状态,使用 slot 分配数据,当节点失效时,通过 slave 进行故障转移。Redis 集群还支持 ASK 和 MOVED 错误处理,确保数据一致性。
摘要由CSDN通过智能技术生成

集群

辅助链接Redis 设计与实现:集群方案 | 郭宁的个人博客 Redis高可用篇:Cluster集群能支持的数据量有多大?-汗血宝马

Redis的集群是Redis提供的分布式数据库方案,集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能。使用 Redis Cluster 集群,主要解决了大数据量存储导致的各种慢问题,同时也便于横向拓展。

  • 节点

    一个Redis集群通常由多个节点组成,通常每个节点是相互独立的,每个节点都是一个集群而当我们将独立的节点连接起来的时候,就构成了一个包含多个节点的集群。

    要想启动集群模式,首先要设置集群模式:cluster-enabled yes, 之后再启动 Redis 节点。

    每个节点会继续使用单机模式中所使用的所有服务器组件:

    • 节点会继续使用文件事件处理器来处理命令请求和返回命令回复。
    • 节点会继续使用时间事件处理器来执行 serverCron 函数, 而 serverCron 函数又会调用集群模式特有的 clusterCron 函数:clusterCron 函数负责执行在集群模式下需要执行的常规操作, 比如向集群中的其他节点发送 Gossip 消息, 检查节点是否断线; 又或者检查是否需要对下线节点进行自动故障转移, 等等。
    • 节点会继续使用数据库来保存键值对数据,键值对依然会是各种不同类型的对象。
    • 节点会继续使用 RDB 持久化模块和 AOF 持久化模块来执行持久化工作。
    • 节点会继续使用发布与订阅模块来执行 PUBLISH 、 SUBSCRIBE 等命令。
    • 节点会继续使用复制模块来进行节点的复制工作。
    • 节点会继续使用 Lua 脚本环境来执行客户端输入的 Lua 脚本。

    此外,节点会继续使用redisServer结构来保存服务器的状态,使用redisClient结构来保存客户端的状态,而那些只在集群中使用到的数据被保存在**clusterNode** 结构,**clusterLink结构, 以及clusterState**结构里面。

    clusterNode :

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值