Внедрение Redis ZPOP - PullRequest
       17

Внедрение Redis ZPOP

0 голосов
/ 16 ноября 2018

Я ищу реализацию Redis ZPOP для атомарного выталкивания элемента ZSET, наиболее распространенный ответ выглядит так:

WATCH zset
element = ZRANGE zset 0 0
MULTI
    ZREM zset element
EXEC

Интересно, может ли следующая реализация выполнить ту же работу, которая кажется проще?Или есть ошибки или проблемы с производительностью?

MULTI
    element = ZRANGE zset 0 0
    ZREM zset element
EXEC

1 Ответ

0 голосов
/ 16 ноября 2018

Вызов ZRANGE внутри блока MULTI будет возвращен только после EXEC, поэтому 2-я версия не будет работать должным образом.

Для вашей информации, начиная с Redis v5, команды ZPOPMIN и ZPOPMAX имеютбыло добавлено.

...