在客户端分片方法中,我可以创建一个分片并将zset存储在单个分片中。使用Redis集群,zset能有多大?如果要成为redis中所有键的索引,我该如何缩放zsets。
发布于 2015-04-10 23:21:27
简而言之:可以--您可以将所有键名称存储在一个排序的集合中。
一个Redis排序集最多可以有2^32 -1 (4294967295)个成员,每个成员由一个长达512MB的字符串和一个64位的分数组成(数据库中的键的数量也有相同的限制)。这既适用于独立的Redis,也适用于Redis集群,并允许在单个排序集中存储~2048PB :)
在Redis集群中,每个key都属于一个特定的哈希槽。因此,一个排序集,不管上面的理论大小限制,都只能和你最大的分片(即Redis服务器)一样大。虽然一个分片可以管理单个插槽,并且一个插槽可以保存单个密钥-但出于可伸缩性方面的考虑,我很难推荐这种方法。
索引你所有的键是一个有趣的挑战--你为什么要这样做?更重要的是,您希望对该索引运行哪种类型的查询?根据数据库中键的数量和查询要求,可能还有其他更有效的方法来实现这一点。
https://stackoverflow.com/questions/29401293
复制相似问题