2011-01-26 67 views
1

我需要存储一个无序的项目的方式,可以快速如何快速检索Redis的

  • 插入
  • 成员测试(和/或路口),只有集合的子集
  • 随机子集检索

的Redis似乎是这种存储的最佳候选,但我阅读文档,有没有适合这个完美的一种数据类型。对于Set类型有一个SUBSET命令是完美的。

什么是存储和查询这种数据结构的最佳方式?

回答

1

定期Redis套件以何种方式不符合您的标准?插入和成员资格测试/交集显然是内置的。集合还有SRANDMEMBER来检索一个集合的随机成员。您可以多次调用它来检索项目的子集(尽管可能会多次获取相同的成员)

如果该集合的大小很大,并且该子集的大小很小,可能不会是那么大的一笔交易,随着子集规模的增长与整体规模的增长相比变得更加棘手(尽管随机选择子集中不需要的项目会更便宜,那么就对它做一个设定差异)。