У меня есть отсортированный набор в Redis с отметкой времени, и различные типы связей с набором сохраняются вместе.
Пример набора данных поясняется ниже:
zadd s1 10 rel1:val1
zadd s1 15 rel1:val2
zadd s1 12 rel1:val3
zadd s1 10 rel2:v1
zadd s1 12 rel2:v2
zadd s1 5 rel1:v3
Что я ищу для верхнего элемента rel1 или rel2 из набора, если я попытался сохранить их отдельно, я закончу многими ключами, которых я хочу избежать.
Я попробовал ZSCAN, и результаты в порядке c по баллам, как показано ниже
localhost:6379> zscan s1 0 match "rel1*" count 10
1) "0"
2) 1) "rel1:v3"
2) "5"
3) "rel1:val1"
4) "10"
5) "rel1:val3"
6) "12"
7) "rel1:val2"
8) "15"
И если я наберу метку времени в -ive, я получу результаты, как и ожидалось, верхний элемент
localhost:6379> zadd s1 -10 rel1:val1
(integer) 0
localhost:6379> zadd s1 -20 rel1:val2
(integer) 0
localhost:6379> zadd s1 -30 rel1:val3
(integer) 0
localhost:6379> zscan s1 0 match "rel1*" count 10
1) "0"
2) 1) "rel1:val3"
2) "-30"
3) "rel1:val2"
4) "-20"
5) "rel1:val1"
6) "-10"
7) "rel1:v3"
8) "5"
Мой вопрос, могу ли я передать эти результаты и поверить в результаты всегда в порядке c с ZSCAN.
Я не могу использовать команды ZREVRANGE или ZRANGE, так как мне нужно получить топ-n элементов, сопоставив элементы.