💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
#### 集合 * * * * * [TOC] ###### SADD key member [member ...] 起始版本:1.0.0 时间复杂度:O(N) where N is the number of members to be added. 添加一个或多个指定的member元素到集合的 key中.指定的一个或者多个元素member 如果已经在集合key中存在则忽略.如果集合key 不存在,则新建集合key,并添加member元素到集合key中. 如果key 的类型不是集合则返回错误. 返回值 integer-reply:返回新成功添加到集合里元素的数量,不包括已经存在于集合中的元素. 历史 = 2.4: 接受多个member 参数. Redis 2.4 以前的版本每次只能添加一个member元素. 例子 ~~~ redis> SADD myset "Hello" (integer) 1 redis> SADD myset "World" (integer) 1 redis> SADD myset "World" (integer) 0 redis> SMEMBERS myset 1) "World" 2) "Hello" ~~~ ###### SCARD key 起始版本:1.0.0 时间复杂度:O(1) 返回集合存储的key的基数 (集合元素的数量). 返回值 integer-reply: 集合的基数(元素的数量),如果key不存在,则返回 0. 举例 ~~~ redis> SADD myset "Hello" (integer) 1 redis> SADD myset "World" (integer) 1 redis> SCARD myset (integer) 2 ~~~ ###### SDIFF key [key ...] 起始版本:1.0.0 时间复杂度:O(N) where N is the total number of elements in all given sets. 返回的集合元素是第一个key的集合与后面所有key的集合的差集 返回一个集合与给定集合的差集的元素. 举例: ~~~ key1 = {a,b,c,d} key2 = {c} key3 = {a,c,e} SDIFF key1 key2 key3 = {b,d} ~~~ 不存在的key认为是空集. 返回值 array-reply:结果集的元素. ~~~ redis> SADD key1 "a" (integer) 1 redis> SADD key1 "b" (integer) 1 redis> SADD key1 "c" (integer) 1 redis> SADD key2 "c" (integer) 1 redis> SADD key2 "d" (integer) 1 redis> SADD key2 "e" (integer) 1 redis> SDIFF key1 key2 1) "a" 2) "b" ~~~ ###### SDIFFSTORE destination key [key ...] 起始版本:1.0.0 时间复杂度:O(N) where N is the total number of elements in all given sets. 该命令类似于 SDIFF, 不同之处在于该命令不返回结果集,而是将结果存放在destination集合中. 如果destination已经存在, 则将其覆盖重写. 返回值 integer-reply: 结果集元素的个数. 例子 ~~~ redis> SADD key1 "a" (integer) 1 redis> SADD key1 "b" (integer) 1 redis> SADD key1 "c" (integer) 1 redis> SADD key2 "c" (integer) 1 redis> SADD key2 "d" (integer) 1 redis> SADD key2 "e" (integer) 1 redis> SDIFFSTORE key key1 key2 (integer) 2 redis> SMEMBERS key 1) "b" 2) "a" ~~~ ###### SINTER key [key ...] 起始版本:1.0.0 时间复杂度:O(N*M) worst case where N is the cardinality of the smallest set and M is the number of sets. 返回指定所有的集合的成员的交集. 例如: ~~~ key1 = {a,b,c,d} key2 = {c} key3 = {a,c,e} SINTER key1 key2 key3 = {c} ~~~ 如果key不存在则被认为是一个空的集合,当给定的集合为空的时候,结果也为空.(一个集合为空,结果一直为空). 返回值 array-reply: 结果集成员的列表. 例子 ~~~ redis> SADD key1 "a" (integer) 1 redis> SADD key1 "b" (integer) 1 redis> SADD key1 "c" (integer) 1 redis> SADD key2 "c" (integer) 1 redis> SADD key2 "d" (integer) 1 redis> SADD key2 "e" (integer) 1 redis> SINTER key1 key2 1) "c" ~~~ ###### SINTERSTORE destination key [key ...] 起始版本:1.0.0 时间复杂度:O(N*M) worst case where N is the cardinality of the smallest set and M is the number of sets. 这个命令与SINTER命令类似, 但是它并不是直接返回结果集,而是将结果保存在 destination集合中. 如果destination 集合存在, 则会被重写. 返回值 integer-reply: 结果集中成员的个数. 例子 ~~~ redis> SADD key1 "a" (integer) 1 redis> SADD key1 "b" (integer) 1 redis> SADD key1 "c" (integer) 1 redis> SADD key2 "c" (integer) 1 redis> SADD key2 "d" (integer) 1 redis> SADD key2 "e" (integer) 1 redis> SINTERSTORE key key1 key2 (integer) 1 redis> SMEMBERS key 1) "c" ~~~ ###### SISMEMBER key member 起始版本:1.0.0 时间复杂度:O(1) 返回成员 member 是否是存储的集合 key的成员. 返回值 integer-reply,详细说明: 如果member元素是集合key的成员,则返回1 如果member元素不是key的成员,或者集合key不存在,则返回0 ##举例 ~~~ redis> SADD myset "one" (integer) 1 redis> SISMEMBER myset "one" (integer) 1 redis> SISMEMBER myset "two" (integer) 0 ~~~ ###### SMEMBERS key 起始版本:1.0.0 时间复杂度:O(N) where N is the set cardinality. 返回key集合所有的元素. 该命令的作用与使用一个参数的SINTER 命令作用相同. 返回值 array-reply:集合中的所有元素. 举例 ~~~ redis> SADD myset "Hello" (integer) 1 redis> SADD myset "World" (integer) 1 redis> SMEMBERS myset 1) "World" 2) "Hello" ~~~ ###### SUNION key [key ...] 起始版本:1.0.0 时间复杂度:O(N) where N is the total number of elements in all given sets. 返回给定的多个集合的并集中的所有成员. 例如: ~~~ key1 = {a,b,c,d} key2 = {c} key3 = {a,c,e} SUNION key1 key2 key3 = {a,b,c,d,e} ~~~ 不存在的key可以认为是空的集合. 返回值 array-reply:并集的成员列表 举例 ~~~ redis> SADD key1 "a" (integer) 1 redis> SADD key1 "b" (integer) 1 redis> SADD key1 "c" (integer) 1 redis> SADD key2 "c" (integer) 1 redis> SADD key2 "d" (integer) 1 redis> SADD key2 "e" (integer) 1 redis> SUNION key1 key2 1) "a" 2) "b" 3) "c" 4) "d" 5) "e" ~~~