大数据|Redis五大数据类型之Set(五)
文章图片
上一篇文章介绍了redis中的List集合【Redis五大数据类型之List(四)】 , 这篇文章继续介绍redis中的Set集合 。
一、redis中Set数据结构redis中Set集合和List集合类似 , 只不过Set集合不会保存重复的数据元素 。 Set集合具有如下特点:
- 单键多值 , 即:一个key对应多个不重复的value值
- set集合会自动排除重复元素
- 底层采用dict字典的数据结构 , 而dict字典是由value为null的Hash表数据结构实现的 , 添加 , 删除 , 查找的时间复杂度是O(1) 。
2、smembers命令:获取该集合中所有值(查看所有集合元素)
# 已经存在的元素 , 再次插入 , 则会自动忽略 。
# 添加成功 , 返回添加的元素个数 。
sadd key名称 value1值 value2值 value3值 value4值...
3、sismember命令:判断set集合中 , key所有包含的value中 , 是否包含指定的value值
# 返回所有集合元素
smembers key名称
4、scard命令:返回集合中元素个数
# 存在value值 , 则返回1 。
# 不存在value值 , 则返回0 。
sismember key名称 value值
5、srem命令:移除集合中 , 某个或多个元素
# 返回集合元素个数
scard key名称
# 移除成功 , 返回移除的元素个数 。
# 如果有不存在的元素 , 移除时候 , 不会计算到移除成功的个数中 。
# 例如:移除2个元素 , 其中一个元素在set集合中不存在 , 则返回值是1 。
srem key名称 value1值 value2值...
6、spop命令:随机从set集合中 , 获取一个或多个值
7、srandmember命令:随机从集合中 , 获取n个值
# 返回弹出的元素 。
# 取出的值 , 会在set集合删除 。
spop key名称 [count个数
# 获取的值 , 在set集合中不会被删除 。
# n可以是任意数字
srandmember key名称 n个数
8、smove命令:把集合1中的一个value值 , 移到集合2中
9、sinter命令:返回集合1和集合2中的交集元素(共有元素)
# 移动的元素集合 , 被移动的元素会在原集合中删除 。
# 如果目标集合中存在该value值 , 则覆盖该值 。
# 移动成功 , 返回移动1 。
smove key1名称 key2名称 需要移动的value值
10、sunion命令:返回集合1和集合2中的并集元素(全部元素)
# 返回两个集合的共有元素集合
sinter key1名称 key2名称
11、sdiff命令:返回集合1和集合2中的差集元素(差集:set1集合中含有的元素 , 并且set2集合中不含有的元素)
# 返回集合1和集合2中所有不重复元素 。
sunion key1名称 key2名称
# key1集合中含有的元素 , 并且key2集合中不含有的元素
sdiff key1名称 key2名称
以上就是redis中Set集合相关操作命令 。
- 苹果|库克压力确实大,在众多国产厂家对标下,iPhone13迎来“真香价”!
- text|《2021大数据产业年度创新技术突破》榜重磅发布丨金猿奖
- 知乎|电商达人迎来补税大潮,知乎带货第一人,被通知补税34万!
- 三星|试图挽回中国市场,国际大厂不断调价,从高端机皇跌到传统旗舰价
- 京东|适合过年送长辈的数码好物,好用不贵+大牌保障,最后一个太实用
- m都是大片!微软 Skype 支持将必应 Bing 图片设为通话虚拟背景
- 酷睿处理器|关键数据出炉,京东比阿里差远了
- 大屏|尺寸直追笔记本 曝国产厂商将推出高刷大屏旗舰平板
- PSVR|Resolution Games将大力支持开发PSVR 2游戏
- 华为鸿蒙系统|华为偷偷上架新机,鸿蒙系统+5000mAh大电池,仅售1399元