Есть ли способ установить лимит членов в отсортированном наборе redis?

Скажем, я хочу сохранить 10 самых последних дополнений к отсортированному набору redis, где 11-е дополнение выталкивает первый из списка. И пока он не достигнет 10 предметов, он просто растет нормально.

Нужно ли проверять длину на каждом добавлении и удалять 1-й элемент?

Ответ 1

Я не думаю, что вам нужно проверить длину, но вам нужно сделать это самостоятельно:

ZREMRANGEBYRANK [KEY] 0 -10

Ответ 2

если вам просто нужно удалить первый элемент в ZSet вы можете использовать эту команду:

ZREMRANGEBYRANK key 0 0 

вы также можете отсортировать 11-й элемент как первый элемент в ZSet, используя ZADD со счетом 1:

ZADD key 1 member

EX:

redis 127.0.0.1:6379 > ZADD myzset 1 one
(целое число) 1
redis 127.0.0.1:6379 > ZADD myzset 1 два
(целое число) 1
redis 127.0.0.1:6379 > ZRANGE myzset 0 -1 с изображениями
1) "один"
2) "1"
3) "два"
4) "1"
redis 127.0.0.1:6379 > ZREMRANGEBYRANK myzset 0 0
(целое число) 1
redis 127.0.0.1:6379 > ZADD myzset 1 три
(целое число) 1
redis 127.0.0.1:6379 > ZRANGE myzset 0 -1 с изображениями
1) "три"
2) "1"
3) "два"
4) "1"