Redis 集群功能说明 0 介绍 这篇文档主要是为了说明正在进展中的Redis 集群功能
文档主要分为两个部分,前一部分主要介绍我在非稳定分支已完成的代码,后一部分主要介绍还有哪些功能待实现
本文档所有的说明都有可能在将来由于设计原因而进行更改,而未实现的计划比已实现的功能更有可能会被更改
本文档包含了所有 client library所需要的细节,但是client library的作者们需要提前意识到真正实现的细节在将来很有可能会有变化
什么是Redis 集群
Redis 集群是一个实现分布式并且允许单点故障的Redis 高级版本
Redis 集群没有最重要或者说中心节点,这个版本最主要的一个目标是设计一个线性可伸缩(可随意增删节点
Redis 集群为了数据的一致性可能牺牲部分允许单点故障的功能,所以当网络故障和节点发生故障时这个系统会尽力去保证数据的一致性和有效性
(这里我们认为节点故障是网络故障的一种特殊情况) 为了解决单点故障的问题,我们同时需要masters 和 slaves
即使主节点(master)和从节点(slave)在功能上是一致的,甚至说他们部署在同一台服务器上,从节点也仅用以替代故障的主节点
实际上应该说 如果对从节点没有 read-after-write(写并立即读取数据 以免在数据同步过程中无法获取数据)的需求,那么从节点仅接受只读操作
已实现子集 Redis 集群会把所有的单一 key存储在非分布式版本的Redis 中
对于复合操作比如求并集求交集之类则未实现
在将来,有可能会增加一种为“Computation Node”的新类型节点
这种节点主要用来处理在集群中multi-key的只读操作,但是对于 multi-key的只读操作不会以集群传输到Computation Node 节点再进行计算的方式实现