Nosql Redis从集合中获取范围?

Nosql Redis从集合中获取范围?,nosql,redis,Nosql,Redis,在Redis中,是否可以从集合中获取一系列项目 我只注意到给你所有成员的成员 例如,如果每次都要在数百万个项目中使用SMember,那么我只需要索引33456到33466中的10个 每次我要10件物品时,会员们都必须生成一份包含数百万物品的完整清单。这不是性能杀手吗?或者因为Redis很快,而且是这样使用的,这样可以吗?不,这是不可能的,因为集合数据类型中不存在索引的概念。事实上,SMEMBERS并不能保证您有一个特定的订单;很可能每次调用时元素的顺序都是随机的。将集合视为无序的集合:如果您需要

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

我只注意到给你所有成员的成员

例如,如果每次都要在数百万个项目中使用SMember,那么我只需要索引33456到33466中的10个


每次我要10件物品时,会员们都必须生成一份包含数百万物品的完整清单。这不是性能杀手吗?或者因为Redis很快,而且是这样使用的,这样可以吗?

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

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


您无法在集合中获取
范围,因为它是无序的,因此没有索引。但是,您可以使用

在redis cli中

SMEMBERS my_set
ZRANGE your_key 33455 33465
此外,可能有助于您在redis中使用

在redis cli中

SMEMBERS my_set
ZRANGE your_key 33455 33465

集合是一种非有序的数据结构。在集合中按范围获取项目是没有意义的。没有索引的概念。也许您应该使用列表或排序集?仅供参考:现在有一个
SRANDMEMBER
命令,它返回多个您可能会发现有用的随机元素。您可以使用功能相对丰富的排序命令来实现您的目标: