SPOP key [count]
从存储在key
的集合中移除并返回一个或多个随机元素。
此操作与SRANDMEMBER
类似,它从一个集合中返回一个或多个随机元素,但不删除元素。
count
参数将在更高版本中提供,但是在2.6、2.8、3.0中不可用。
返回值
bulk-string-reply:被删除的元素,或者当key
不存在时返回nil
。
例子
SADD myset "one"
SADD myset "two"
SADD myset "three"
SPOP myset
SMEMBERS myset
SADD myset "four"
SADD myset "five"
SPOP myset 3
SMEMBERS myset
传递count时的行为规范
如果count大于集合内部的元素数量,此命令将会返回整个集合,不会有额外的元素。
返回元素的分布
请注意,当你需要保证均匀分布返回的元素时,此命令不适用。更多有关SPOP使用的算法的信息,请查阅Knuth采样和Floyd采样算法。
count参数扩展
Redis 3.2是第一个可以给SPOP
传递可选参数count
的版本,以便在一次调用中取回多个元素。此实现已经在unstable
分支中可用。
相关参考链接
Sets相关命令:
命令组 | 命令 |
Sets(集合) | SADD; SCARD; SDIFF; SDIFFSTORE; SINTER; SINTERSTORE; SISMEMBER; SMEMBERS; SMOVE; SPOP; SRANDMEMBER; SREM; SSCAN; SUNION; SUNIONSTORE; |
全部命令组:Keys(键)、Strings(字符串)、Hashes(哈希表)、Lists(列表)、Sets(集合)、Sorted Sets(有序集合)、Pub/Sub(发布/订阅)、Scripting(脚本)、Server(服务器)、Transactions(事物),Geo(地理位置)、Cluster(集群)、Connection(连接)、Streams(流)、HyperLogLog。
回到总目录:Redis命令参考手册(总目录)