您的位置:首页 > 健康 > 美食 > seo网站优化建议_武汉建设信息网官网首页_小果seo实战培训课程_互联网广告代理可靠吗

seo网站优化建议_武汉建设信息网官网首页_小果seo实战培训课程_互联网广告代理可靠吗

2025/4/20 23:00:03 来源:https://blog.csdn.net/2303_77303297/article/details/147012640  浏览:    关键词:seo网站优化建议_武汉建设信息网官网首页_小果seo实战培训课程_互联网广告代理可靠吗
seo网站优化建议_武汉建设信息网官网首页_小果seo实战培训课程_互联网广告代理可靠吗

与 list 不同的是,集合内的元素是无序的,同时不能重复,和数学中的集合概念类似

命令

SADD

将一个或者多个元素添加到 set 中,但是需要注意的是重复的元素是无法加入的

sadd key member {member……}

时间复杂度: O(1)

返回值: 添加成功的元素个数

SMEMBERS

获取对应 set 中的所有元素,这些元素的顺序都是无序的

smembers key

时间复杂度: O(N)

返回值: 所有元素的列表

SISMEMBER

用来判断一个元素是否在set中存在

sismember key member

时间复杂度: O(1)

返回值: 1 表示元素在集合中, 0 表示元素不存在或者key不存在

SCARD

获取集合中的元素个数

scard key

时间复杂度: O(1)

返回值: 集合中的元素个数

SPOP

从 set 中删除并返回一个或者多个元素

但是因为 set 中的元素是无序的,所以取出的元素实际是随机的

spop key {count(取出的元素个数)}

时间复杂度: O(N) N就是count

返回值: 取出的元素

SMOVE

将一个元素从原 set 中取出放入到目标 set 中

smove source(原set) destination(目标set) member

时间复杂度: O(1)

返回值: 1 表示移动成功, 0 表示失败

SREM

将指定的元素从 set 中删除

srem key member {member……}

时间复杂度: O(N) N表示要删除的元素的个数

返回值: 这一次操作被删除的元素的个数

多集合之间的操作

和数学概念一样,交集、并集、差集

SINTER

获取指定 set 的交集中的元素

sinter key {key……}

时间复杂度: O(N*M) N和M分别是集合的元素个数

返回值: 满足交集条件的所有元素

SINTERSTORE

获取指定 set 的交集中的元素,然后保存到目标 set 中

sinterstore destination key {key……}

时间复杂度: O(N*M) N和M分别是集合的元素个数

返回值: 交集的元素的个数

SUNION

获取指定 set 的并集中的元素

sunion key {key……}

时间复杂度: O(N) N给定的所有集合的总的个数

返回值: 并集的元素

SUNIONSTORE

获取指定 set 的并集中的元素,然后保存到目标 set 中

sunionstore destination key {key……}

时间复杂度: O(N) N给定的所有集合的总的个数

返回值: 并集的元素个数

时间复杂度: O(N) N给定的所有集合的总的个数

返回值: 并集的元素个数

sdiff key {key……}

时间复杂度: O(N) N给定的所有集合的总的元素个数

返回值: 差集的所有元素

SDIFFSTORE

获取指定 set 的差集中的元素,然后保存到目标 set 中

sdiffstore destination key {key……}

时间复杂度: O(N) N给定的所有集合的总的个数

返回值: 差集的元素个数

命令总结

命令

操作

时间复杂度

SADD key element [element ...]

批量添加元素时,时间复杂度与元素数量成正比。

O(k),k 是添加的元素个数

SREM key element [element ...]

批量删除元素时,时间复杂度与元素数量成正比。

O(k),k 是删除的元素个数

SCARD key

直接返回集合的基数(元素个数),无需遍历。

O(1)

SISMEMBER key element

基于哈希表实现,判断元素是否存在的时间为常数。

O(1)

SRANDMEMBER key [count]

若 count 为正,返回不重复元素;为负可能返回重复元素。

O(n),n 是返回的元素数量

SPOP key [count]

随机移除并返回元素,性能与数量相关。

O(n),n 是弹出的元素数量

SMEMBERS key

返回所有元素,需遍历整个集合,大集合慎用。

O(k),k 是集合元素个数

SINTER key [key ...]

求交集,需比较所有集合的公共元素。

O(m * k),m 是集合数,k 是最小集合元素数

SINTERSTORE dest key [key ...]

将交集结果存储到 dest,时间复杂度与 SINTER 相同。

同 SINTER

SUNION key [key ...]

求并集,需合并所有集合的元素。

O(k),k 是所有集合元素总数

SUNIONSTORE dest key [key ...]

将并集结果存储到 dest,时间复杂度与 SUNION 相同。

同 SUNION

SDIFF key [key ...]

求差集(第一个集合独有的元素)。

O(k),k 是所有集合元素总数

SDIFFSTORE dest key [key ...]

将差集结果存储到 dest,时间复杂度与 SDIFF 相同。

同 SDIFF

内部编码

  • 当元素个数较少,且元素都为整数时,为 intset

  • 当元素个数超过 512 个,为 hashtable

  • 当存在元素不是整数时,为 hashtable

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com