如何快速检索Redis中Set的子集

时间:2011-01-26 17:50:18

标签: data-structures redis

我需要以允许快速

的方式存储无序的项目集
  • 插入
  • 会员资格测试(和/或交集)
  • 随机子集检索

Redis似乎是这种存储的理想选择,但是当我阅读文档时,没有一种数据类型可以完美地适应这种情况。拥有Set类型的SUBSET命令将是完美的。

存储和查询此类数据结构的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

常规Redis设置的方式不符合您的标准?插入和成员资格测试/交集显然是内置的。集合也有SRANDMEMBER来检索集合的随机成员。您可以多次调用它来检索项目的子集(尽管有可能多次获得相同的成员。

如果集合的大小很大,并且子集的大小很小,那么这可能不会那么大。随着子集的大小与整个集合的大小相比,它变得更加棘手(尽管最终只是随机选择您不希望在子集中的项目然后只是对其进行设置差异变得更便宜)。