2016-10-08 3 views
0

Если у меня есть SortedSet в Redis, который просто содержит целочисленные значения, скажем, с 1-2 миллионов, есть ли способ быстро определить отсутствующие значения целого в SortedSet? Или, может быть, другая структура данных, кроме SortedSet, будет лучше для такого типа поиска?Каков наилучший способ узнать недостающие числа в сортировке в Redis?

ответ

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 
Смежные вопросы