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