扫码一下
查看教程更方便
Redis SPOP 命令用于移除集合中的指定 key 的一个或多个随机元素,移除后会返回移除的元素。
该命令类似 Srandmember 命令,但 SPOP 将随机元素从集合中移除并返回,而 Srandmember 则仅仅返回随机元素,而不对集合进行任何改动。
redis SPOP 命令基本语法如下:
redis 127.0.0.1:6379 >SPOP key [count]
count 参数在 3.2+ 版本可用。
>= 1.0.0
如果count大于集合内部的元素总数,此命令将会返回整个集合,没有额外的元素。
请注意,当你需要保证均匀分布返回的元素时,此命令不适用。更多有关SPOP使用的算法的信息,请查阅Knuth采样和Floyd采样算法。
Redis 3.2 起可以给 SPOP传递可选参数 count ,以便在一次调用中返回多个元素。
redis 127.0.0.1:6379> SADD myset "one"
(integer) 1
redis 127.0.0.1:6379> SADD myset "two"
(integer) 1
redis 127.0.0.1:6379> SADD myset "three"
(integer) 1
redis 127.0.0.1:6379> SPOP myset
"one"
redis 127.0.0.1:6379> SMEMBERS myset
1) "three"
2) "two"
redis 127.0.0.1:6379> SADD myset "four"
(integer) 1
redis 127.0.0.1:6379> SADD myset "five"
(integer) 1
redis 127.0.0.1:6379> SPOP myset 3
1) "five"
2) "four"
3) "two"
redis 127.0.0.1:6379> SMEMBERS myset
1) "three"
SPOP 命令时间复杂度:O(1)