1. SPOP key [count]
起始版本:1.0.0
时间复杂度:O(1)
移除并返回集合中的一个随机元素。
如果只想获取一个随机元素,但不想该元素从集合中被移除的话,可以使用 SRANDMEMBER 命令。
1.1. 返回值
被移除的随机元素。
当 key 不存在或 key 是空集时,返回 nil 。
1.2. demo
# key 不存在, 返回 nil
127.0.0.1:6379> EXISTS myset
(integer) 0
127.0.0.1:6379> SPOP myset
(nil)
# 随机返回一个或多个元素,并从集合中移除
127.0.0.1:6379> SMEMBERS myset
1) "d"
2) "b"
3) "c"
4) "a"
5) "e"
127.0.0.1:6379> SPOP myset 2
1) "a"
2) "d"
127.0.0.1:6379> SMEMBERS myset
1) "b"
2) "c"
3) "e"
# 如果指定的key不是set类型,返回错误
127.0.0.1:6379> TYPE key1
string
127.0.0.1:6379> SPOP key1
(error) WRONGTYPE Operation against a key holding the wrong kind of value