Redis从套装获得范围?

时间:2012-10-08 18:04:57

标签: nosql redis

在Redis中,是否可以从Set中获取一系列项目?

我只注意到给你所有成员的SMEMBERS。 http://redis.io/commands#set

例如,如果我每次都必须在数百万件物品中使用SMEMBERS,我只需要其中的10件,从33,456到33,466。

每当我要求10个项目时,SMEMBERS必须生成数百万个项目的完整列表。这不是性能杀手吗?或者它是否可以,因为Redis很快并且意味着以这种方式使用?

2 个答案:

答案 0 :(得分:2)

ZRange可能会帮助您在redis中使用Sorted Sets

在redis-cli

ZRANGE your_key 33455 33465

答案 1 :(得分:1)

不,这是不可能的,因为Set数据类型中不存在索引的概念。事实上,SMEMBERS并不能保证您有特定的订单;每次调用它时,元素的顺序很可能是随机的。将集合视为无序集合:如果您需要存储一组共享某些内容的ID,那么很好,但如果您需要实现分页,则最终不是要使用的数据类型。也许您正在寻找ListsSorted Sets

我建议您阅读以下内容以了解redis中的可用数据类型以及何时使用它们: