Implementation of Redis ZPOP



我正在搜索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

MULTI块内对ZRANGE的调用将仅在EXEC之后返回,因此第二个版本将无法按预期工作。

供您参考,从Redis v5开始,已经添加了命令ZPOPMIN和ZPOPMAX。

最新更新