有没有好的方法支持 Redis 排序集中的 pop 成员?

YuF*_*hen 3 redis

有没有好的方法可以像 List 的 api LPOP 一样支持 Redis 排序集中的 pop 成员?

我发现从 Redis 排序集中弹出消息是使用 ZRANGE +ZREM ,但是它不是线程安全性,并且当多个线程从不同主机同时访问它们时需要分布式锁。

请建议是否有更好的方法从排序集中弹出成员?

Mar*_*ell 5

在Redis 5.0或更高版本中,您可以使用[B]ZPOP{MIN|MAX} key [count]来实现此场景。

MIN版本采用得分最低的项目;MAX选取得分最高的项目。count默认为 1,前缀B会阻塞,直到数据可用。