Redis SRANDMEMBER命令

 
Redis SRANDMEMBER 命令,该命令执行时,如果只提供了 key 参数,那么返回集合中的一个随机元素。

从 Redis 2.6 版本开始, SRANDMEMBER 命令允许接受可选参数 count,该参数描述如下:
  • 如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。
  • 如果 count 大于等于集合基数,那么返回整个集合。
  • 如果 count 为负数,那么返回数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。

该命令和 SPOP 相似,但 SPOP 是将随机元素从集合中移除并返回,而 SRANDMEMBER 则仅仅返回随机元素,而不对集合做任何改动。

可用版本

SRANDMEMBER 命令可用版本:>= 1.0.0

语法

Redis SRANDMEMBER 命令的基本语法如下:
SRANDMEMBER key [count]  

返回值

只提供 key 参数时,返回一个元素;如果集合为空,返回 nil 。如果提供了 count 参数,那么返回一个数组,此时若集合为空,则返回空数组。

命令演示

127.0.0.1:6379> SADD website www.biancheng.net www.baidu.com www.jd.com  #向集合添加元素
(integer) 3
127.0.0.1:6379> SADD site www.biancheng.net www.baidu.com stackoverflow.com
(integer) 3
127.0.0.1:6379> SMEMBERS website #查看所有元素
1) "www.baidu.com"
2) "www.biancheng.net"
3) "www.jd.com"
127.0.0.1:6379> SRANDMEMBER website 2 #count=2返回两个元素
1) "www.biancheng.net"
2) "www.jd.com"
127.0.0.1:6379> SMEMBERS website #查看原集合
1) "www.baidu.com"
2) "www.biancheng.net"
3) "www.jd.com