directory search
Cluster cluster addslots(集群 槽位) cluster count failure reports(集群计数失败报告) cluster countkeysinslot cluster delslots cluster failover cluster forget cluster getkeysinslot cluster info cluster keyslot(集群键槽) cluster meet cluster nodes(集群节点) cluster replicate(集群复制) cluster reset(集群重置) cluster saveconfig cluster set config epoch cluster setslot cluster slaves cluster slots readonly readwrite Connection auth echo ping quit select swapdb Geo geoadd geodist geohash geopos georadius georadiusbymember Hashes hdel hexists hget hgetall hincrby hincrbyfloat hkeys hlen hmget hmset hscan hset hsetnx hstrlen hvals HyperLogLog pfadd pfcount pfmerge Keys del dump exists expire expireat keys migrate move object persist pexpire pexpireat pttl randomkey rename renamenx restore scan sort touch ttl type unlink wait Lists blpop brpop brpoplpush lindex linsert llen lpop lpush lpushx lrange lrem lset ltrim rpop rpoplpush rpush rpushx Pub/Sub psubscribe publish pubsub punsubscribe subscribe unsubscribe Scripting eval evalsha script debug script exists script flush script kill script load Server bgrewriteaof bgsave client getname client kill client list client pause client reply client setname command command count command getkeys command info config get config resetstat config rewrite config set dbsize debug object debug segfault flushall flushdb info lastsave monitor role save shutdown slaveof slowlog time Sets sadd scard sdiff sdiffstore sinter sinterstore sismember smembers smove spop srandmember srem sscan sunion sunionstore Sorted Sets zadd zcard zcount zincrby zinterstore zlexcount zrange zrangebylex zrangebyscore zrank zrem zremrangebylex zremrangebyrank zremrangebyscore zrevrange zrevrangebylex zrevrangebyscore zrevrank zscan zscore zunionstore Strings append bitcount bitfield bitop bitpos decr decrby get getbit getrange getset incr incrby incrbyfloat mget mset msetnx psetex set setbit setex setnx setrange strlen Transactions discard exec multi unwatch watch
characters

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 以便在一次调用中检索多个元素。

Previous article: Next article: