在Redis的集群模式下,具有特定密钥的数据必须存储在特定节点中,无论它具有什么数据结构(例如List / Hash)?
例如,我有一个哈希映射:
HMSET website google www.google.com yahoo www.yahoo.com
哈希映射的关键是"网站",哈希地图有数据{google:www.google.com,yahoo:www.yahoo.com}。据我所知,哈希映射只存储在集群的一个节点中。当哈希映射很大时(例如,一个哈希映射中的400M键值对),它将无效。
我的问题是:有没有办法在群集中自动分发同一个密钥的哈希映射的内容?例如,在节点0中存储对{google:www.google.com}并在节点1中存储对{yahoo www.yahoo.com},此时哈希映射的键仍为"网站"?
答案 0 :(得分:3)
在Redis的集群模式下,具有特定密钥的数据必须存储在特定节点中,无论它具有什么数据结构(例如List / Hash)?
是 - 每个密钥都映射到一个哈希槽,即单个群集实例管理。
我的问题是:有没有办法在群集中自动分发同一个密钥的哈希映射的内容?
否 - 数据在密钥级别的节点之间分配。给定密钥的数据结构不能在多个分片之间分配。要分发数据,您必须使用更多密钥对其进行建模。
正确地建模您的需求需要知道您对分布式"哈希映射执行的操作类型"和他们各自的频率。您可以随意将此信息添加到问题中,或者打开一个更关注您需求的新信息。