Redis 集群规范

Redis 集群规范

ID:39467778

大小:45.00 KB

页数:11页

时间:2019-07-04

Redis 集群规范_第1页
Redis 集群规范_第2页
Redis 集群规范_第3页
Redis 集群规范_第4页
Redis 集群规范_第5页
资源描述:

《Redis 集群规范》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Redis集群规范引言这个文档是正在开发中的Redis集群功能的规范(specification)文档,文档分为两个部分:第一部分介绍目前已经在unstable分支中实现了的那些功能。第二部分介绍目前仍未实现的那些功能。文档各个部分的内容可能会随着集群功能的设计修改而发生改变,其中,未实现功能发生修改的几率比已实现功能发生修改的几率要高。这个规范包含了编写客户端库(clientlibrary)所需的全部知识,不过请注意,这里列出的一部分细节可能会在未来发生变化。什么是Redis集群?Redis集群是一个分布式(distributed)、容错(fault-

2、tolerant)的Redis实现,集群可以使用的功能是普通单机Redis所能使用的功能的一个子集(subset)。Redis集群中不存在中心(central)节点或者代理(proxy)节点,集群的其中一个主要设计目标是达到线性可扩展性(linearscalability)。Redis集群为了保证一致性(consistency)而牺牲了一部分容错性:系统会在保证对网络断线(netsplit)和节点失效(nodefailure)具有有限(limited)抵抗力的前提下,尽可能地保持数据的一致性。集群将节点失效视为网络断线的其中一种特殊情况。集群的容错功能是

3、通过使用主节点(master)和从节点(slave)两种角色(role)的节点(node)来实现的:主节点和从节点使用完全相同的服务器实现,它们的功能(functionally)也完全一样,但从节点通常仅用于替换失效的主节点。不过,如果不需要保证“先写入,后读取”操作的一致性(read-after-writeconsistency),那么可以使用从节点来执行只读查询。Redis集群实现的功能子集Redis集群实现了单机Redis中,所有处理单个数据库键的命令。针对多个数据库键的复杂计算操作,比如集合的并集操作、合集操作没有被实现,那些理论上需要使用多个节

4、点的多个数据库键才能完成的命令也没有被实现。在将来,用户也许可以通过MIGRATECOPY命令,在集群的计算节点(computationnode)中执行针对多个数据库键的只读操作,但集群本身不会去实现那些需要将多个数据库键在多个节点中移来移去的复杂多键命令。Redis集群不像单机Redis那样支持多数据库功能,集群只使用默认的0号数据库,并且不能使用SELECT命令。Redis集群协议中的客户端和服务器Redis集群中的节点有以下责任:持有键值对数据。记录集群的状态,包括键到正确节点的映射(mappingkeystorightnodes)。自动发现其他节

5、点,识别工作不正常的节点,并在有需要时,在从节点中选举出新的主节点。为了执行以上列出的任务,集群中的每个节点都与其他节点建立起了“集群连接(clusterbus)”,该连接是一个TCP连接,使用二进制协议进行通讯。节点之间使用Gossip协议来进行以下工作:传播(propagate)关于集群的信息,以此来发现新的节点。向其他节点发送PING数据包,以此来检查目标节点是否正常运作。在特定事件发生时,发送集群信息。除此之外,集群连接还用于在集群中发布或订阅信息。因为集群节点不能代理(proxy)命令请求,所以客户端应该在节点返回-MOVED或者-ASK转向(

6、redirection)错误时,自行将命令请求转发至其他节点。因为客户端可以自由地向集群中的任何一个节点发送命令请求,并可以在有需要时,根据转向错误所提供的信息,将命令转发至正确的节点,所以在理论上来说,客户端是无须保存集群状态信息的。不过,如果客户端可以将键和节点之间的映射信息保存起来,可以有效地减少可能出现的转向次数,籍此提升命令执行的效率。键分布模型Redis集群的键空间被分割为16384个槽(slot),集群的最大节点数量也是16384个。推荐的最大节点数量为1000个左右。每个主节点都负责处理16384个哈希槽的其中一部分。当我们说一个集群处于

7、“稳定”(stable)状态时,指的是集群没有在执行重配置(reconfiguration)操作,每个哈希槽都只由一个节点进行处理。重配置指的是将某个/某些槽从一个节点移动到另一个节点。一个主节点可以有任意多个从节点,这些从节点用于在主节点发生网络断线或者节点失效时,对主节点进行替换。以下是负责将键映射到槽的算法:HASH_SLOT=CRC16(key)mod16384以下是该算法所使用的参数:算法的名称:XMODEM(又称ZMODEM或者CRC-16/ACORN)结果的长度:16位多项数(poly):1021(也即是x16+x12+x5+1)初始化值:

8、0000反射输入字节(ReflectInputbyte):False发射输出CR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。