作者:业余爱好者 | 来源:互联网 | 2023-06-15 19:33
这里写目录标题
- 5.8 SPOP:随机地从集合中移除指定数量的元素
- 5.8.1 SPOP与SRANDMEMBER的区别
- 5.8.2 其他信息
- 参考目录
5.8 SPOP:随机地从集合中移除指定数量的元素
通过使用SPOP命令,用户可以从集合中随机地移除指定数量的元素。 SPOP命令接受一个可选的count参数,用于指定需要被移除的元素数量。如果用户没有给定这个参数,那么SPOP命令默认只移除一个元素:
SPOP命令会返回被移除的元素作为命令的返回值。
举个例子,对于包含以下元素的databases集合来说:
我们可以使用SPOP命令随机地移除databases集合中的元素:
图5-11展示了databases集合在执行各个SPOP命令时的变化过程。
5.8.1 SPOP与SRANDMEMBER的区别
SPOP命令和SRANDMEMBER命令的主要区别在于,SPOP命令会移除 被随机选中的元素,而SRANDMEMBER命令则不会移除被随机选中的元素。
通过查看databases集合目前包含的元素,我们可以证实之前被SPOP命 令选中的元素已经不在集合当中了:
SPOP命令与SRANDMEMBER命令的另一个不同点在于,SPOP命令只接受正数count值,如果向SPOP命令提供负数count值将引发错误,因为负数count值对于SPOP命令是没有意义的:
5.8.2 其他信息
复杂度:O(N),其中N为被移除的元素数量。
版本要求:不带count参数的SPOP命令从Redis 1.0.0版本开始可用;带有 count参数的SPOP命令从Redis 3.2.0版本开始可用。
参考目录
绝大多数 内容来自 Redis使用手册 (黄健宏 著) 第5章 集合