千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:重庆千锋IT培训  >  技术干货  >  一分钟带你了解Redis数据类型-Set

一分钟带你了解Redis数据类型-Set

来源:千锋教育
发布人:lxl
时间: 2023-05-11 11:30:35

  首先我们来看看Redis中的Set类型有什么特点。

  与List相比,Set集合中的元素不允许重复,一个集合中最多可以对应2^32-1(4294967295)个元素。

Redis数据类型-Set

  Set除了可以执行增删改查的命令之外,还支持交集、并集、差集等的计算。

  二. 基本命令

  对我们来说,常用的Set命令有如下几种。

Redis数据类型-Set

  插入操作

  #插入: sadd key value1 value2 .....

  192.168.65.15:6379> sadd student aa bb cc

  #返回新增成功value的个数

  (integer) 3

  #第二次插入,由于存在重复元素,所以不成功

  192.168.65.15:6379> sadd student aa bb cc

  (integer) 0

  2. 查询操作

  #查询所有: smembers key

  192.168.65.15:6379> smembers student

  "aa"

  "cc"

  "bb"

  #查询元素是否存在: sismember key value

  192.168.65.15:6379> sismember student aa

  #如果存在返回1

  (integer) 1

  #如果不存在返回0

  192.168.65.15:6379> sismember student dd

  (integer) 0

  #随机返回count个元素: srandmember key count

  192.168.65.15:6379> srandmember student 2

  "aa"

  "cc"

  #返回集合元素的个数:scard key

  192.168.65.15:6379> scard student

  (integer) 3

  3. 删除操作

  #删除元素,返回删除的个数:srem key value...

  192.168.65.15:6379> srem student aa

  (integer) 1

  #查看一下,果然已删除

  192.168.65.15:6379> smembers student

  "cc"

  "bb"

  #随机删除元素并返回删除的元素

  192.168.65.15:6379> spop student 1

  "cc"

  #查看一下,果然已删除

  192.168.65.15:6379> smembers student

  "bb"

  三. 交集、并集、差集

  除了以上几种基本的操作之外,我们还可以计算集合的交集、并集、差集。

  计算交集

Redis数据类型-Set

  #新增学生数据:张三 20岁 男

  192.168.65.15:6379> sadd student1 zs 20 boy

  (integer) 3

  #新增学生数据:李四 22岁 男

  192.168.65.15:6379> sadd student2 ls 22 boy

  (integer) 3

  #求这两条数据的交集:boy

  192.168.65.15:6379> sinter student1 student2

  "boy"

  计算并集

Redis数据类型-Set

  #集合合并,并且重复部分只保留一份

  192.168.65.15:6379> sunion student1 student2

  "20"

  "boy"

  "22"

  "zs"

  "ls"

  计算差集

Redis数据类型-Set

  #sdiff key1 key2 结果是 key1中去重重复部分

  192.168.65.15:6379> sdiff student1 student2

  "20"

  "zs"

  保存结果

  最后我们把上述操作的命令完整地展示在下面。

  #计算交集,并保存

  #sinterstore 保存的key key1 key2

  192.168.65.15:6379> sinterstore student_jj student1 student2

  (integer) 1

  192.168.65.15:6379> smembers student_jj

  "boy"

  #计算并集,并保存

  #sunionstore 保存的key key1 key2

  192.168.65.15:6379> sunionstore student_bj student1 student2

  (integer) 5

  192.168.65.15:6379> smembers student_bj

  "20"

  "boy"

  "22"

  "zs"

  "ls"

  #计算差集,并保存

  #sdiffstore 保存的key key1 key2

  192.168.65.15:6379> sdiffstore student_cj student1 student2

  (integer) 2

  192.168.65.15:6379> smembers student_cj

  "20"

  "zs"

  192.168.65.15:6379>

  四. 应用场景

  学习完了Set命令,我们又该把Set应用在哪些地方呢?以下是我们总结出来的一些常见应用场景。

Redis数据类型-Set

  #用户1的开发语言标签:

  192.168.65.15:6379> sadd user1 java go python

  (integer) 3

  #用户2的开发语言标签:

  192.168.65.15:6379> sadd user2 java net c#

  (integer) 3

  #用户1和用户2的开发语言共同标签:

  192.168.65.15:6379> sinter user1 user2

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

如何进行mysql数据备份?

2023-05-30

从零开始学Java之Java中的内部类是怎么回事?

2023-05-29

什么是事件流以及事件流的传播机制 ?

2023-05-29

最新文章NEW

什么是servlet的生命周期?servlet请求处理流程是怎样的?

2023-05-30

在java中,super关键字怎样使用

2023-05-29

什么是JavaScript伪数组?

2023-05-25

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>