redis-源码学习-set
基础的set相关的命令,t_set.c
sadd——saddCommand
示例:SADD KEY_NAME VALUE1..VALUEN
- 被添加到集合中的新元素的数量,不包括被忽略的元素。
1 | void saddCommand(redisClient *c) { |
srem——sremCommand
示例:SREM KEY MEMBER1..MEMBERN
- 被成功移除的元素的数量,不包括被忽略的元素。
1 | void sremCommand(redisClient *c) { |
smove——smoveCommand
示例:SMOVE SOURCE DESTINATION MEMBER
- 如果成员元素被成功移除,返回 1 。 如果成员元素不是 source 集合的成员,并且没有任何操作对 destination 集合执行,那么返回 0 。
1 | void smoveCommand(redisClient *c) { |
sismember——sismemberCommand
示例:SISMEMBER KEY VALUE
- 如果成员元素是集合的成员,返回 1 。 如果成员元素不是集合的成员,或 key 不存在,返回 0 。
1 | void sismemberCommand(redisClient *c) { |
scard——scardCommand
示例:SCARD KEY_NAME
- 集合的数量。 当集合 key 不存在时,返回 0 。
1 | void scardCommand(redisClient *c) { |
spop——spopCommand
示例:SPOP KEY
- 被移除的随机元素。 当集合不存在或是空集时,返回 nil 。
1 | void spopCommand(redisClient *c) { |
srandmember——srandmemberCommand
示例:SRANDMEMBER KEY [count]
- 只提供集合 key 参数时,返回一个元素;如果集合为空,返回 nil 。 如果提供了 count 参数,那么返回一个数组;如果集合为空,返回空数组。
1 | void srandmemberCommand(redisClient *c) { |
sinter——sinterCommand
示例:SINTER KEY KEY1..KEYN
- 交集成员的列表。
1 | void sinterCommand(redisClient *c) { |
sinterstore——sinterstoreCommand
示例:SINTERSTORE DESTINATION_KEY KEY KEY1..KEYN
- 返回存储交集的集合的元素数量。
1 | void sinterstoreCommand(redisClient *c) { |
sunion——sunionCommand
示例:SUNION KEY KEY1..KEYN
- 并集成员的列表。
1 | void sunionCommand(redisClient *c) { |
sunionstore——sunionstoreCommand
示例:SUNIONSTORE DESTINATION KEY KEY1..KEYN
- 结果集中的元素数量。
1 | void sunionstoreCommand(redisClient *c) { |
sdiff——sdiffCommand
示例:SDIFF FIRST_KEY OTHER_KEY1..OTHER_KEYN
- 包含差集成员的列表。
1 | void sdiffCommand(redisClient *c) { |
sdiffstore——sdiffstoreCommand
示例:SDIFFSTORE DESTINATION_KEY KEY1..KEYN
- 结果集中的元素数量。
1 | void sdiffstoreCommand(redisClient *c) { |
smembers——sinterCommand
示例:SMEMBERS key
- 集合中的所有成员。
1 | void sinterCommand(redisClient *c) { |
sscan——sscanCommand
示例:SSCAN key cursor [MATCH pattern] [COUNT count]
- 数组列表。
1 | void sscanCommand(redisClient *c) { |
命令 | 作用 | intset编码时间复杂度 | hashtable编码时间复杂度 |
---|---|---|---|
SADD | 将一个或多个 member 元素加入到集合 key 当中 |
O(N) | O(1) |
SCARD | 返回指定集合所包含的元素数量 | O(1) | O(1) |
SISMEMBER | 判断元素是否是指定集合中的成员 | O(log(n)) | O(1) |
SMEMBERS | 返回指定集合的所有成员 | O(n) | O(n) |
SRANDMEMBER | 返回指定集合的count个随机成员 | O(1) | O(1) |
SPOP | 移除并返回指定集合中的一个随机元素 | O(N) | O(1) |
SREM | 移除指定集合中一个或者多个元素 | O(N) | O(1) |
1 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 SHIELD!
评论