写点什么

【Redis 实战】集合类型,unixlinux 编程实践教程

  • 2021 年 11 月 10 日
  • 本文字数:1137 字

    阅读完需:约 4 分钟

SREM 命令用来从集合中删除一个或多个元素,并返回删除成功的个数。由值于元素“d”在集合中不存在,所有只删除了一个元素,返回值为 1。

2、获得集合中得到所有元素(SMEMBERS)

SMEMBERS 命令会返回集合中的所有元素。


127.0.0.1:6379> SMEMBERS letters


  1. "b"

  2. "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. "1"


127.0.0.1:6379> SDIFF setB setA


  1. "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. "1"


(2)SINTER 命令用来对多个集合执行交集运算。


127.0.0.1:6379> SINTER setA setB


  1. "2"

  2. "3"


SINTER 命令同样支持同时传入多个键,如:


127.0.0.1:6379> SINTER setA setB setC


  1. "2"

  2. "3"


(3)SUNION 命令用来对多个集合执行并集运算。


127.0.0.1:6379> SUNION setA setB


  1. "1"

  2. "2"

  3. "3"

  4. "4"


SUNION 命令同时支持传入多个键,例如:


127.0.0.1:6379> SUNION setA setB setC


  1. "1"

  2. "2"

  3. "3"

  4. "4"

5、获得集合中元素个数(SCARD)

SCARD 命令用来获得集合中的元素个数。


127.0.0.1:6379> SMEMBERS letters


  1. "b"

  2. "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


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


ers


"b"


还可以传递 count 参数来一次随机获得多个元素,根据 count 的正负不同,具体表现也不同。


(1)当 count 为正数时,SRANDMEMBER 会随机从集合里获得 count 个不重复的元素。如果 count 的值大于集合中的元素个数,则 SRANDMEMBER 会返回集合中的全部元素。


(2)当 count 为负数时,SRANDMEMBER 会随机从集合里获得|count|个的元素,这些元素有可能相同。


127.0.0.1:6379> SMEMBERS letters


  1. "b"

  2. "c"

  3. "a"

  4. "d"


127.0.0.1:6379> SRANDMEMBER letters 2


  1. "b"

  2. "d"


127.0.0.1:6379> SRANDMEMBER letters 2


  1. "b"

  2. "a"


127.0.0.1:6379> SRANDMEMBER letters 100


  1. "b"

  2. "a"

评论

发布
暂无评论
【Redis实战】集合类型,unixlinux编程实践教程