Как определить, является ли что-то членом упорядоченного множества? - PullRequest
11 голосов
/ 25 мая 2011

Из того, что я вижу, нет команды для этого, но мне нужно что-то похожее на команду SISMEMBER , но для упорядоченных наборов.Учитывая, что для этого нет команды, как лучше всего определить, является ли что-то членом упорядоченного множества?Может быть, спросить счет участника с ZCORE и если нет оценки, чем нет участника?

1 Ответ

21 голосов
/ 25 мая 2011

Как вы предложили, я бы просто использовал ZSCORE.Если возвращается nil, то запрошенный член отсутствует в наборе.ZRANK также будет работать, но это O (log n), а ZSCORE - O (1).

redis> zadd orderedset 1 key1
(integer) 1
redis> zadd orderedset 2 key2
(integer) 1
redis> zscore orderedset key1
"1"
redis> zscore orderedset badkey
(nil)
...