南宁品牌网站建设,网站建设数据录入,嘉兴网站建设网址,汕头网站制作服务商目录
SADD 插入集合
SCARD 取元素数量
SPOP 随机移除元素
SREM 移除多个元素
SMOVE 移动元素到别的集合
SMEMBERS 取所有成员
SRANDMEMBER 取指定数量元素
SISMEMBER 判断元素是否存在
SUNION 多集合求并集
SUNIONSTORE 多集合求并集#xff08;存储#xff09;
S…目录
SADD 插入集合
SCARD 取元素数量
SPOP 随机移除元素
SREM 移除多个元素
SMOVE 移动元素到别的集合
SMEMBERS 取所有成员
SRANDMEMBER 取指定数量元素
SISMEMBER 判断元素是否存在
SUNION 多集合求并集
SUNIONSTORE 多集合求并集存储
SINTER 多集合求交集
SINTERSTORE 多集合求取交集存储
SDIFF 多集合求取差集
SDIFFSTORE 多集合求取差集存储
SSCAN 迭代 SADD 插入集合
SADD key member [member ...]将一个或多个 member 元素加入到集合 key 当中已经存在于集合的 member 元素将被忽略
假如 key 不存在则创建一个只包含 member 元素作成员的集合当 key 不是集合类型时返回一个错误
127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 sadd myset a b c d e f g h i j k l m n # 向key中添加集合元素,key不存在则自动创建空的key集合
(integer) 14
127.0.0.1:6379 set name lisi # 初始化非集合key
OK
127.0.0.1:6379 sadd name zhangsan # 向非集合中执行sadd
(error) WRONGTYPE Operation against a key holding the wrong kind of value
时间复杂度O(N) N 是被添加的元素的数量。
返回值
被添加到集合中的新元素的数量不包括被忽略的元素。对非集合执行sadd报错。 SCARD 取元素数量
SCARD key返回集合中的元素数量
127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 scard myset2 # 不存在key
(integer) 0
127.0.0.1:6379 sadd myset a b c d e f g h i j k l m n
(integer) 14
127.0.0.1:6379 scard myset # 存在集合key
(integer) 14
127.0.0.1:6379 set name lisi # 初始化非集合key
OK
127.0.0.1:6379 scard name # 对非集合key执行scard命令
(error) WRONGTYPE Operation against a key holding the wrong kind of value
时间复杂度O(1)。
返回值
不存在key似为空集合返回0存在集合key返回元素个数对非集合key报错 SPOP 随机移除元素
SPOP key移除并返回集合中的一个随机元素。
如果只想获取一个随机元素但不想该元素从集合中被移除的话可以使用 SRANDMEMBER 命令。
127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 sadd myset a # 初始化集合
(integer) 1
127.0.0.1:6379 spop myset
a
127.0.0.1:6379 spop myset # 集合为空
(nil)
127.0.0.1:6379 spop myset2 # 不存在的key
(nil)
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 spop name # key 不为集合
(error) WRONGTYPE Operation against a key holding the wrong kind of value
时间复杂度O(1)。
返回值
被随机移除的元素。当 key 不存在或 key 是空集时返回 nil当 key 不为集合报错。 SREM 移除多个元素
SREM key member [member ...]移除集合 key 中的一个或多个 member 元素不存在的 member 元素会被忽略。
127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 sadd myset a b c d e # 初始化集合
(integer) 5
127.0.0.1:6379 srem myset a b c d # 移除 a b c d
(integer) 4
127.0.0.1:6379 srem myset a b c d e
(integer) 1 # 移除 a b c d e不存在元素忽视了
127.0.0.1:6379 srem myset2 a
(integer) 0 # 移除不存在key似为空集合
127.0.0.1:6379 set name list
OK
127.0.0.1:6379 srem name 1 # key不为集合报错
(error) WRONGTYPE Operation against a key holding the wrong kind of value
时间复杂度为O(N) N 为给定 member 元素的数量
返回值
不存在key似为空集合返回0。key为集合返回成功移除的元素的数量不包括被忽视的元素不存在的元素直接被忽视。key不为集合报错。 SMOVE 移动元素到别的集合
SMOVE source destination member将 member 元素从 source 集合移动到 destination 集合。
该操作是原子性的。如果 source 集合不存在或不包含指定的 member 元素则 SMOVE 命令不执行任何操作仅返回 0 。否则 member 元素从 source 集合中被移除并添加到 destination 集合中去。当 destination 集合已经包含 member 元素时SMOVE 命令只是简单地将 source 集合中的 member 元素删除。当 source 或 destination 不是集合类型时返回一个错误。
127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 sadd s1 a b # 初始化集合
(integer) 2
127.0.0.1:6379 smove s1 dest a # 移动集合
(integer) 1
127.0.0.1:6379 smembers s1 # 查看集合元素
1) b
127.0.0.1:6379 smembers dest # 查看dest元素
1) a
127.0.0.1:6379 set name cxian
OK
127.0.0.1:6379 smove s1 name b # 有非集合key报错
(error) WRONGTYPE Operation against a key holding the wrong kind of value
时间复杂度O(1)。
返回值
如果 member 元素被成功移除返回 1 。如果 member 元素不是 source 集合的成员并且没有任何操作对 destination 集合执行那么返回 0 。 SMEMBERS 取所有成员
SMEMBERS key返回集合 key 中的所有成员。
不存在的 key 被视为空集合。
127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 sadd s1 a b c d e
(integer) 5
127.0.0.1:6379 smembers s1
1) d
2) b
3) a
4) c
5) e
127.0.0.1:6379 smembers s2
(empty array)
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 smembers name
(error) WRONGTYPE Operation against a key holding the wrong kind of value
时间复杂度O(N) N 为集合的基数。
返回值
集合中的所有成员。不存在的key返回空。非集合key报错。 SRANDMEMBER 取指定数量元素
SRANDMEMBER key [count]取指定数量count的元素。
count不指定默认为1即随机取一个元素。count为正数count小于集合大小返回不重复的count个元素的数组count大于等于集合大小则返回整个集合的元素。count为负数那么命令返回一个数组数组中的元素可能会重复出现多次而数组的长度为 count 的绝对值。
127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 sadd s1 a b c
(integer) 3
127.0.0.1:6379 srandmember s1
a
127.0.0.1:6379 srandmember s1 2
1) a
2) b
127.0.0.1:6379 srandmember s1 5
1) b
2) a
3) c
127.0.0.1:6379 srandmember s1 -5
1) a
2) c
3) a
4) c
5) c
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 srandmember lisi
(nil)
时间复杂度
只提供 key 参数时为 O(1) 。 如果提供了 count 参数那么为 O(N) N 为返回数组的元素个数。
返回值
只提供 key 参数时返回一个元素如果集合为空返回 nil 如果提供了 count 参数那么返回一个数组如果集合为空返回空数组。对非集合key执行srandmember返回nil。 SISMEMBER 判断元素是否存在
SISMEMBER key member判断 member 元素是否集合 key 的成员。
127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 sadd s1 a b c # 初始化集合
(integer) 3
127.0.0.1:6379 sismember s1 a # 查看是否存在
(integer) 1
127.0.0.1:6379 sismember s1 f
(integer) 0
127.0.0.1:6379 sismember s2 f # 不存在key似为空集合
(integer) 0
127.0.0.1:6379 set name cxian
OK
127.0.0.1:6379 sismember name f # 对非集合key操作报错
(error) WRONGTYPE Operation against a key holding the wrong kind of value
时间复杂度O(1)。
返回值
存在返回1不存在返回0对非集合执行 SISMEMBER 命令报错。 SUNION 多集合求并集
SUNION key [key ...]返回一个集合的全部成员该集合是所有给定集合的并集。
不存在的 key 被视为空集。原理把所有key集合的元素组合在一起并且去重后的元素集合。
127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 sadd myset a b # 初始化集合
(integer) 2
127.0.0.1:6379 sadd myset2 a b c d # 初始化集合
(integer) 4
127.0.0.1:6379 sunion myset myset2 myset3 # myset3不存在被似为空集合
1) d
2) a
3) b
4) c
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 sunion myset name # 有key存在且不为集合报错
(error) WRONGTYPE Operation against a key holding the wrong kind of value
时间复杂度O(N) N 是所有给定集合的成员数量之和。
返回值
并集成员的列表。有key存在且不为集合则报错。 SUNIONSTORE 多集合求并集存储
SUNIONSTORE destination key [key ...]与SUNION操作相似。
不同点它将结果保存到 destination 集合而不是简单地返回结果集。如果 destination 已经存在则将其覆盖。destination 可以是 key 本身。
127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 sadd s1 a b # 初始化集合
(integer) 2
127.0.0.1:6379 sadd s2 c
(integer) 1
127.0.0.1:6379 sunionstore dest s1 s2 s3 # 取并集
(integer) 3
127.0.0.1:6379 smembers dest # 查看dest信息
1) a
2) b
3) c
127.0.0.1:6379 set name cxian
OK
127.0.0.1:6379 sunionstore dest s1 s2 s3 name # 有非命令key报错
(error) WRONGTYPE Operation against a key holding the wrong kind of value时间复杂度O(N) N 是所有给定集合的成员数量之和。
返回值
结果集中的元素数量。对非集合key执行SUNIONSTORE命令报错。 SINTER 多集合求交集
SINTER key [key ...]返回所有给定集合的交集。
不存在的 key 被视为空集。原理取都存在于所有key集合中的元素集合。
127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 sadd s1 a b c d e # 初始化集合
(integer) 5
127.0.0.1:6379 sadd s2 b e f g # 初始化集合
(integer) 4
127.0.0.1:6379 sinter s1 s2 # 取交集
1) e
2) b
127.0.0.1:6379 sinter s1 s2 s3 # 取交集有不存在的key似为空集
(empty array)
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 sinter s1 s2 name # 存在不为集合的key报错
(error) WRONGTYPE Operation against a key holding the wrong kind of value
时间复杂度O(N * M) N 为给定集合当中基数最小的集合 M 为给定集合的个数。
返回值
交集成员的列表不存在key似为空集合。存在key不为集合报错。 SINTERSTORE 多集合求取交集存储
SINTERSTORE destination key [key ...]跟SINTER操作相似。
不同点SINTERSTORE 它将结果保存到 destination 集合中。如果 destination 已经存在则将其覆盖。destination 可以是 key 本身。
127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 sadd s1 a b d # 初始化集合
(integer) 3
127.0.0.1:6379 sadd s2 d e f # 初始化集合
(integer) 3
127.0.0.1:6379 sinterstore dest s1 s2
(integer) 1
127.0.0.1:6379 smembers dest # 查看集合dest
1) d
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 sinterstore dest s1 s2 name # 存在不为集合的key
(error) WRONGTYPE Operation against a key holding the wrong kind of value
时间复杂度O(N * M) N 为给定集合当中基数最小的集合 M 为给定集合的个数。
返回值
结果集中的成员数量。存在key不为集合报错。 SDIFF 多集合求取差集
SDIFF key [key ...]取给定集合之间的差集
不存在的key似为空集合原理以第个key集合为主减去存在于后面所有key集合的并集的元素剩下的元素集合。
127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 sadd myset a b c d e # 初始化几个集合key
(integer) 5
127.0.0.1:6379 sadd myset2 d e
(integer) 2
127.0.0.1:6379 sadd myset3 c d
(integer) 2
127.0.0.1:6379 sdiff myset myset2 myset3 # 取三个集合的差集
1) b
2) a
127.0.0.1:6379 sdiff myset myset2 myset3 myset4 # 取4个集合的差集其中一个不存在似为空集合
1) b
2) a
127.0.0.1:6379 set name lisi # 定义一个非集合key
OK
127.0.0.1:6379 sdiff myset myset2 myset3 myset4 name # 有一个key不为集合
(error) WRONGTYPE Operation against a key holding the wrong kind of value
时间复杂度O(N) N 是所有给定集合的成员数量之和。
返回值
交集成员的列表若有不存在的key似为空集合若有非集合key报错 SDIFFSTORE 多集合求取差集存储
SDIFFSTORE destination key [key ...]与SDIFF操作相拟。
不同点SDIFFSTORE 它将结果保存到 destination 集合中。如果 destination 已经存在则将其覆盖。destination 可以是 key 本身。
127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 sadd s1 baidu google alibaba banana # 初始化集合
(integer) 4
127.0.0.1:6379 sadd s2 apple banana orange # 初始化集合
(integer) 3
127.0.0.1:6379 sdiffstore dest s1 s2 # 求差集并保存到dest中
(integer) 3
127.0.0.1:6379 smembers dest # 查看dest中元素
1) baidu
2) google
3) alibaba
127.0.0.1:6379 set name cxian
OK
127.0.0.1:6379 sdiffstore dest s1 name # 存在不为集合的key报错
(error) WRONGTYPE Operation against a key holding the wrong kind of value
时间复杂度O(N) N 是所有给定集合的成员数量之和。
返回值
结果集中的成员数量。存在key不为集合报错。 SSCAN 迭代
详见SCAN命令操作实战。