首页/数据/数据库速查/SPOP 随机弹出(抽奖/去重队列)
Redis 命令96 条

SPOP 随机弹出(抽奖/去重队列)

随机删除并返回成员:单成员或 count 个;抽奖、库存去重、随机派单都靠它保证「一个成员只会被弹出一次」。

数据库速查数据更新于 2026-10-12

示例

示例
SADD pool:prize p1 p2 p3 p4 p5
SPOP pool:prize          # 随机弹 1 个(已删除)
SPOP pool:prize 2        # 随机弹 2 个
SCARD pool:prize         # 剩 2 个
# 抽完为止:
SPOP pool:prize          # 直到返回 nil 表示抽空
返回被弹出的成员(随机)
count一次弹多个;count>=基数时相当于全取
副作用成员被真正删除
SPOP 有删除副作用,不能当只读随机抽样用;只读随机取用 SRANDMEMBER。

易错点

  • 用 SPOP 做展示抽样:成员会被删掉,展示几次集合就空了
  • count 传超大值:等价于一次性全取,注意大响应

数据来源与参考

  • Redis 官方文档: SPOP

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌