Redis避不开的五种数据结构
srandmember 命令中有一个可选参数 count,count 参数指的是返回元素的个数,如果当前 set 中的元素个数小于 count,则 srandmember 命令返回当前 set 中的所有元素,如果 count 参数等于 0,则不返回任何数据,如果 count 参数小于 0,则随机返回当前 count 个数的元素。 从集合中随机弹出元素 spop key [count] ![]() spop 命令也是随机从 set 中弹出元素,并且也支持 count 可选参数,但有一点和 srandmember 命令不同。spop 命令在随机弹出元素之后,会将弹出的元素从 set 中删除。 获取所有元素 smembers key ![]() smembers 命令虽然能获取当前 set 中所有的元素,但返回元素的顺序与 sadd 添加元素的顺序不一定相同,这也就是前面提到过的保存在 set 中的元素是无序的。 2.集合间操作 集合的交集 sinter key [key ...] ![]() 集合的并集 sunion key [key ...] ![]() 集合的差集 sdiff key [key ...] ![]() 将集合的交集、并集、差集的结果保存 sinterstore destination key [key ...] sunionstore destination key [key ...] sdiffstore destination key [key ...] ![]() 为什么 Redis 要提供 sinterstore、sunionstore、sdiffstore 命令来将集合的交集、并集、差集的结果保存起来呢?这是因为 Redis 在进行上述比较时,会比较耗费时间,所以为了提高性能可以将交集、并集、差集的结果提前保存起来,这样在需要使用时,可以直接通过 smembers 命令获取。 时间复杂度 下面我们看一下 set 中相关命令的时间复杂度。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |