Redis参考手册
设定 | Sets
spop
SPOP key [count]
自1.0.0起可用。
时间复杂度: O(1)
从设置值存储中移除并返回一个或多个随机元素key
。
该操作与 SRANDMEMBER 相似,它返回一个或多个随机元素,但不会将其删除。
该count
参数自 3.2 版开始可用。
返回值
批量字符串回复:已移除的元素或nil
何时key
不存在。
例子
redis> SADD myset "one" (integer) 1
redis> SADD myset "two" (integer) 1
redis> SADD myset "three" (integer) 1
redis> SPOP myset "one"
redis> SMEMBERS myset 1) "two" 2) "three"
redis> SADD myset "four" (integer) 1
redis> SADD myset "five" (integer) 1
redis> SPOP myset 3 1) "four" 2) "three" 3) "five"
redis> SMEMBERS myset 1) "two"
计数通过时的行为规范
如果 count 大于 Set 内部的元素数量,则该命令将只返回整个集合而不包含其他元素。
返回元素的分配
请注意,当您需要保证返回元素的均匀分布时,此命令不适用。有关用于 SPOP 的算法的更多信息,请查找 Knuth 采样和 Floyd 采样算法。
计数参数扩展
Redis 3.2引入了一个可选count
参数,可以传递给 SPOP 以便在一次调用中检索多个元素。
设定 | Sets相关
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。 它通常被称为数据结构服务器,因为值( value )可以是 字符串( String ), 哈希(Map),列表(list),集合( sets ) 和 有序集合( sorted sets )等类型。
主页 | https://redis.io/ |
源码 | https://github.com/antirez/redis |
发布版本 | 4.0.2 |