其他分享
首页 > 其他分享> > 选译:Reids 集群规格

选译:Reids 集群规格

作者:互联网

Redis 集群目标

子集实现

Reids 单机版支持的单键命令,Reids 集群也支持。

对于复杂的多键命令,如果这些键都被哈希到相同的槽,Reids 集群也支持。

Reids 集群支持"hash tag"的概念,用来强制某些键存储到同一个哈希槽。

Reids 集群不支持多个数据库,只有0号数据库。

服务端和客户端在 Reids 集群中扮演的角色

写安全

性能

键分布式模型

键空间被划分为16384个槽,集群中的每个主节点负责16384个槽中的一个子集。

HASH_SLOT = CRC16(key) mod 16384

键 hash tag

hash tag 保证多个键被哈希到同一个槽。

def HASH_SLOT(key)
    s = key.index "{"
    if s
        e = key.index "}",s+1
        if e && e != s+1
            key = key[s+1..e-1]
        end
    end
    crc16(key) % 16384
end

重定向和重分片

MOVED 重定向

ASK 重定向

客户端首次连接&重定向的处理

下列情况下,客户端通常需要完整地获取所有槽->节点的映射:

参考 CLUSTER SLOTS 命令。

多键操作

当某个槽正处于重新分片的过程中,属于此槽的键是不可用的。

用副本节点伸缩读操作

连接可以开启只读模式,暗示客户端可以接受“过时”的数据,对正在进行中的写入不感兴趣。

参考 READONLY 命令。

标签:副本,重定向,选译,Reids,写入,集群,节点,客户端
来源: https://www.cnblogs.com/roy2220/p/15431520.html