Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hash Redid 3.0群集数据_Hash_Redis_Cluster Computing - Fatal编程技术网

Hash Redid 3.0群集数据

Hash Redid 3.0群集数据,hash,redis,cluster-computing,Hash,Redis,Cluster Computing,关于Redid3.0群集,我有两个问题 什么是散列槽,它们的用途是什么 redid集群中的节点是否共享相同的数据,即每个节点中的数据是否与galera集群中共享相同数据的节点(主节点)相同 散列槽是如何将密钥划分到集群的独立节点中的,因此一个节点将在这些槽中具有多个。最多有16384个插槽,因此理论上,集群中的节点不应超过16384个,因为它们无法存储任何内容。实际上,哈希槽是一组将在单个节点上找到的密钥 每个节点将存储数据的不同部分,客户端将被路由到具有所需密钥的节点。一旦集群稳定(因此您不会

关于Redid3.0群集,我有两个问题

  • 什么是散列槽,它们的用途是什么

  • redid集群中的节点是否共享相同的数据,即每个节点中的数据是否与galera集群中共享相同数据的节点(主节点)相同

  • 散列槽是如何将密钥划分到集群的独立节点中的,因此一个节点将在这些槽中具有多个。最多有16384个插槽,因此理论上,集群中的节点不应超过16384个,因为它们无法存储任何内容。实际上,哈希槽是一组将在单个节点上找到的密钥

  • 每个节点将存储数据的不同部分,客户端将被路由到具有所需密钥的节点。一旦集群稳定(因此您不会添加或删除节点),一个哈希槽将始终位于同一节点内,以便客户端能够记住键和节点之间的关系。此外,集群的每个节点都可以有自己的主从复制

  • 详情如下:

    那么一个节点可以有多个哈希槽,而每个哈希槽可以存储多个密钥?此外,哈希槽是否也存储密钥和映射值,或者这些值存储在其他位置?是的,一个节点可以有多个哈希槽,每个节点上都保留有哈希槽和节点之间的映射表(在cluster spec链接中查找mapping关键字)。是的,每个哈希槽可以包含多个键,基本算法是:hash_slot=CRC16(key)mod 16384,但也有一些例外(在集群规范链接中查找哈希标记)。如果节点在哈希槽和密钥之间保持某种映射,或者每次都计算它们,那么我在文档中找不到任何内容。谢谢Liviu。我确实读过文档规范,但我认为解释很模糊。这就是为什么我问这些问题以获得更清晰的理解。