在Redis中,是否可以从Set中获取一系列项目?
我只注意到给你所有成员的SMEMBERS。 http://redis.io/commands#set
例如,如果我每次都必须在数百万件物品中使用SMEMBERS,我只需要其中的10件,从33,456到33,466。
每当我要求10个项目时,SMEMBERS必须生成数百万个项目的完整列表。这不是性能杀手吗?或者它是否可以,因为Redis很快并且意味着以这种方式使用?
答案 0 :(得分:2)
答案 1 :(得分:1)
不,这是不可能的,因为Set数据类型中不存在索引的概念。事实上,SMEMBERS
并不能保证您有特定的订单;每次调用它时,元素的顺序很可能是随机的。将集合视为无序集合:如果您需要存储一组共享某些内容的ID,那么很好,但如果您需要实现分页,则最终不是要使用的数据类型。也许您正在寻找Lists或Sorted Sets?
我建议您阅读以下内容以了解redis中的可用数据类型以及何时使用它们: