【Redis 实战】集合类型,unixlinux 编程实践教程
SREM 命令用来从集合中删除一个或多个元素,并返回删除成功的个数。由值于元素“d”在集合中不存在,所有只删除了一个元素,返回值为 1。
2、获得集合中得到所有元素(SMEMBERS)
SMEMBERS 命令会返回集合中的所有元素。
127.0.0.1:6379> SMEMBERS letters
"b"
"a"
3、判断元素是否在集合中(SISMEMBER)
当值存在时,SISMEMBER 命令返回 1,否则返回 0。
127.0.0.1:6379> SISMEMBER letters a
(integer) 1
127.0.0.1:6379> SISMEMBER letters d
(integer) 0
4、集合间运算(SDIFF/SINTER/SUNION)
(1)SDIFF 命令用来对多个集合执行差集运算。
127.0.0.1:6379> SADD setA 1 2 3
(integer) 3
127.0.0.1:6379> SADD setB 2 3 4
(integer) 3
127.0.0.1:6379> SDIFF setA setB
"1"
127.0.0.1:6379> SDIFF setB setA
"4"
SDIFF 命令支持同时传入多个件,例如:计算顺序是先计算 setA-setB,再计算结果与 setC 的差集。
127.0.0.1:6379> SADD setC 2 3
(integer) 2
127.0.0.1:6379> SDIFF setA setB setC
"1"
(2)SINTER 命令用来对多个集合执行交集运算。
127.0.0.1:6379> SINTER setA setB
"2"
"3"
SINTER 命令同样支持同时传入多个键,如:
127.0.0.1:6379> SINTER setA setB setC
"2"
"3"
(3)SUNION 命令用来对多个集合执行并集运算。
127.0.0.1:6379> SUNION setA setB
"1"
"2"
"3"
"4"
SUNION 命令同时支持传入多个键,例如:
127.0.0.1:6379> SUNION setA setB setC
"1"
"2"
"3"
"4"
5、获得集合中元素个数(SCARD)
SCARD 命令用来获得集合中的元素个数。
127.0.0.1:6379> SMEMBERS letters
"b"
"a"
127.0.0.1:6379> SCARD letters
(integer) 2
6、进行集合运算并将结果存储(SDIFFSTORE)
SDIFFSTORE 命令和 SDIFF 命令功能一样,唯一的区别就是前者不会直接返回运算结果,而是将结果存储在 destination 键中。
SDIFFSTORE 命令常用于需要多步集合运算的场景中,如需要先计算差集再将结果和其他键计算交集。
7、随机获得集合中的元素(SRANDMEMBER)
SRANDMEMBER 命令用来随机从集合中获取一个元素。
127.0.0.1:6379> SRANDMEMBER letters
"a"
127.0.0.1:6379> SRANDMEMBER lett
ers
"b"
还可以传递 count 参数来一次随机获得多个元素,根据 count 的正负不同,具体表现也不同。
(1)当 count 为正数时,SRANDMEMBER 会随机从集合里获得 count 个不重复的元素。如果 count 的值大于集合中的元素个数,则 SRANDMEMBER 会返回集合中的全部元素。
(2)当 count 为负数时,SRANDMEMBER 会随机从集合里获得|count|个的元素,这些元素有可能相同。
127.0.0.1:6379> SMEMBERS letters
"b"
"c"
"a"
"d"
127.0.0.1:6379> SRANDMEMBER letters 2
"b"
"d"
127.0.0.1:6379> SRANDMEMBER letters 2
"b"
"a"
127.0.0.1:6379> SRANDMEMBER letters 100
"b"
"a"
评论