在Redis中知道排序集中缺少数字的最佳方法是什么?

时间:2016-10-08 22:25:31

标签: redis

如果我在Redis中有一个只包含整数值的SortedSet,让我们说1-2百万,是否有一种高效的方法可以快速找出SortedSet中缺少的整数值?或者,除了SortedSet之外,不同的数据结构是否更适合这种类型的查找?

1 个答案:

答案 0 :(得分:0)

您可以尝试位操作:setbit。您可以将整数作为位位置/偏移量,而不是将整数存储到Redis中。总之,使用bitmap来存储整数的存在。

当您尝试存储整数时,请使用setbit命令设置相应的位。如果要检查缺失的整数,请获取值,并检查位值为0的位置。

  

存储整数

// store 2
setbit key 2 1
// store 123
setbit key 123 1
// store N
setbit key N 1
  

找到缺失的整数

// get value
get key
// Check each bit of the returned value.
// If the bit value is 0, the position/offset of this bit is a missing integer