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