国庆小复习,Redis中的Set

15 篇文章 6 订阅

1.前言

今天是2022年10月5日已经是国庆的第6天了,不知道的各位读者朋友的假期时光是否愉快,在快活的同时各位读者朋友记得不要耽搁了学习,假期可是弯道超车的好机会,今天小编就带领大家一起复习一遍Redis中的五大数据类型之一的Set集合的一些基础命令。
在这里插入图片描述

Redis中的五大类型

在开篇之前防止一些小傻蛋连Redis中的五大类型都不记得了,这里小编还是简单的介绍一下Redia中的五大类型,分别是 String类型也就是字符串类型和 Hash类型List类型 , Setl类型,zset类型,不知道觉得生涩的小伙伴们是否回忆起了与它们的点滴。

2.Set集合

Redis set对外提供的功能与list类似是一个列表的功能,但是不同于List的地方在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。
Redis的Set是string类型的无序集合。它底层其实是一个value为null的hash表。

3.常用命令

1. sadd {key} {value} {value} {value}…

使用 sadd <key><value1><value2> .....  命令 将一个或者多个元素添加到集合中
如果集合中原本就是存在要储存的元素 则该元素将会被忽略 因为 Set集合中的元素是不能重复的
假如执行 sadd set 1 2 3 4 5 6  数据库存储的格式是 1 2 3 4 5 6 

2. smembers {key}

使用 smembers <key> 命令 取出对应set集合中的所有值
如果进行取值 如果取出上面命令存储的值的话 输出格式为 1 2 3 4 5 6

3. sismember {key} {value}

使用 sismember <key> <value> 命令 判断集合 <key> 中是否有 <value>
有的话返回 1 没有则返回 0

4. scard {key}

使用 scard <key> 命令 返回该集合中的元素个数

5. srem {key} {value1} {value2} …

使用 srem <key><value1><value2> ....  命令 可以删除集合中的一个或者多个元素
返回的是删除元素的个数

6. spop {key}

使用 spop <key> 命令 随机从对应集合中吐出一个值
吐出的值将不会存储在集合中 如果值取完了集合将自动删除

7. srandmember {key} {n}

使用 srandmember <key> <n> 命令  随机从集合中取出 n 个值
取出的元素不会从集合中删除

8. smove {source} {destination} value

使用 smove <source> <destination> value 命令 把集合中的一个值移动到另一个集合中
将 value 从 {source} 集合中移动到 {destination} 集合中
移动的元素将不会继续存储在原集合中 
如果移动过去元素该集合中原本就有 则该操作被忽略 但移动的元素还是会被原集合删除

9. sinter {key1} {key2}

使用 sinter <key1> <key2> 命令  返回两个集合的交集元素
就是取出两个集合中相同的元素

10. sunion {key1} {key2}

使用 sunion <key1> <key2> 命令  返回两个集合中的并集
可以理解为 将两个集合的元素整合在一起 但是set集合元素是不能重复的 则相同的元素都会变成一个元素
然后返回

11. sdiff {key1} {key2}

使用 sdiff <key1> <key2> 命令 返回两个集合元素的 差集
返回 key1 中不包含在 key2 中的元素

4.底层数据结构

Set数据结构是dict字典,字典是用哈希表实现的。
Java中HashSet的内部实现使用的是HashMap,只不过所有的value都指向同一个对象。Redis的set结构也是一样,它的内部也使用hash结构,所有的value都指向同一个内部值。

5.结尾

本篇博客就写到这里了,感谢各位读者的阅读,Redis中的基本类型已经介绍三个了,后续专栏将继续介绍Redis中的 Hash类型zset类型 感兴趣的小伙伴可以给小编的专栏点个关注,后续将会更新更多优质内容,已经是国庆假期的第六天了,各位小伙伴可以尽快恢复状态开始卷了。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值