redis cluster说明

翻译来自redis官网,水平有限。译错之处,多多指正。
https://redis.io/topics/cluster-spec

欢迎观看Redis cluster说明。在这里你将看到关于redis cluster模式的相关算法和设计理念。本文档持续更新中,以便和redis的实现同步。
主要属性和设计理念
redis cluster的目标
redis cluster模式以分布式部署方式实现了以下目标,根据重要性排序如下:

  1. 高性能和可线性扩展至1000个节点。不使用代理、异步的拷贝和对值的合并操作。
    2.

  2. 可接受的写安全:系统尽最大努力保留所有来自与与master节点连接的客户端的写操作,通常会有小窗口丢失确认信息。当客户端在少数分区时,确认信息会丢失的更多。

  3. 可用性:redis cluster可以在每个主节点都有从节点不可用的情况下,保证大部分主节点可使用,此外在副本迁移过程中,从节点不在从主节点复制信息,而是从其他正常主节点复制信息。
    这个文档描述的是redis3.0或更高版本的功能。

集合的实现
redis cluster实现了非分布式版本redis的所有单key的命令。复杂的多key操作类似SET类型的并集和交集操作实现的跟单节点的表现一样。
redis cluster实现了一个叫做hash标签的概念,这个功能被用来强制某些key被存储在统一个节点。然而当人工分片的时候,多key操作将变得不再可用,但是单key还是可用的。

在redis cluster协议中客户端和服务端角色
在redis中, cluster节点存储数据和cluster的状态,包含将key与数据节点的映射关系。cluster节点可以自动的发现其他节点,探测到死掉的节点和实现主从节点的灾备。
为了实现任务,cluster节点使用(redis 集群总线)tcp总线和二进制协议进行连接。在集群中,每一个节点都是用总线连接其他节点。节点间使用流言协议发现新节点,发送ping命令包来探测其他节点是否存活,以及在特定条件下发送集群特定消息。集群总线也被用来发送Pub/Sub消息和人工灾备(由系统管理员人工进行的灾备,而非系统自动进行的灾备)。
由于群集节点无法代理请求,因此可以使用重定向错误-MOVED和-ASK命令将客户端重定向到其他节点。里路上,客户端可以随意向集群中的所有节点发送请求,必要时重定向,因此客户端无需保存集群状态。但是当客户端保存了key和节点之间的映射时,也是可以提高性能的。

《持续更新中…》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值