当前位置: 首页 > news >正文

【Redis之Set类型的详解Set类型中常用命令的实践】

Redis之Set类型的详解&Set类型中常用命令的实践

知识回顾:

通过对Redis中的String的命令做了充分的讲解以及实践学习
通过对Redis中String类型之Bit命令的详解以及Bit命令的实践进行了学习
通过对Redis中的Hash类型以及Hash中常用命令的实践学习
通过对Redis之List类型的详解&List类型中常用命令的实践
接下来的学习任务:
接下来我们要学习的内容是:Redis之Set类型的详解&Set类型中常用命令的实践。

Redis中String类型内容请看这里呦:
【Redis之String类型的详解&String类型中常用命令的实践】
Redis中String类型是Bit命令内容请看这里呦:
【Redis中String类型之Bit命令的详解&Bit命令的实践】
Redis之Hash类型的详解&Hash类型中常用命令的实践请看这里呦:
【Redis之Hash类型的详解&Hash类型中常用命令的实践】
Redis之List类型的详解&List类型中常用命令的实践请看这里呦:
【Redis之List类型的详解&List类型中常用命令的实践】

Redis中Set的介绍

Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。

Redis中Set的基本命令结构

set的基本命令 唯一标识的key 集合中的元素(无序不重复)
在这里插入图片描述

Redis中Set的常用命令

Redis中set的常用命令备注说明
sadd添加一个或多个元素到集合中,如果集合中存在该元素则忽略
scard返回集合中的元素的个数
sismember判断集合中是否含有某元素
smembers获取集合中的所有的元素
srem删除集合中指定的元素
srandmember随机返回集合中的元素,版本2.6后在命令之后可以跟一个count。指定随机返回的元素个数
spop和srandmember类似,只是spop会将获取的元素移除而srandmember不会移除元素
smove将元素从一个集合移动到另一个集合中
sdiff返回两个集合的差集
sdiffstore和sdiff类似,不同的是会将差集结果保存起来
sinter获取两个集合的交集
sinterstore和sinter类似,不同的是将结果保存起来了
sunion获取两个集合的并集
sunionstore获取两个集合的并集并保存起来

sadd命令

添加一个或多个元素到集合中,如果集合中存在该元素不添加,返回0,如果添加不重复的返回添加成功的元素个数。

127.0.0.1:6379> sadd teacher zhang huang zuo pan xue liu
(integer) 6
127.0.0.1:6379> sadd teacher zhang
(integer) 0
127.0.0.1:6379> sadd teacher li
(integer) 1
127.0.0.1:6379> 

在这里插入图片描述

scard命令

返回集合中元素的个数。

127.0.0.1:6379> sadd teacher zhang huang zuo pan xue liu
(integer) 6
127.0.0.1:6379> sadd teacher zhang
(integer) 0
127.0.0.1:6379> sadd teacher li
(integer) 1
127.0.0.1:6379> scard teacher
(integer) 7
127.0.0.1:6379> 

在这里插入图片描述

sismember命令

判断集合中是否含有某元素。

127.0.0.1:6379> sismember teacher zhang
(integer) 1
127.0.0.1:6379> sismenber teacher liu
(error) ERR unknown command `sismenber`, with args beginning with: `teacher`, `liu`, 
127.0.0.1:6379> sismember teacher liu
(integer) 1
127.0.0.1:6379> sismember teacher xi
(integer) 0
127.0.0.1:6379> 

在这里插入图片描述

smembers命令

获取集合中的所有的元素。

127.0.0.1:6379> sismember teacher xi
(integer) 0
127.0.0.1:6379> smembers teacher
1) "zhang"
2) "huang"
3) "pan"
4) "li"
5) "liu"
6) "xue"
7) "zuo"
127.0.0.1:6379> 

在这里插入图片描述

srem命令

删除集合中指定的元素,删除成功,返回1,如果集合中不含有该元素,则忽略,返回0。

127.0.0.1:6379> smembers teacher
1) "zhang"
2) "huang"
3) "pan"
4) "li"
5) "liu"
6) "xue"
7) "zuo"
127.0.0.1:6379> srem teacher li
(integer) 1
127.0.0.1:6379> smembers teacher
1) "zhang"
2) "huang"
3) "pan"
4) "liu"
5) "xue"
6) "zuo"
127.0.0.1:6379> 

在这里插入图片描述

srandmember命令

随机返回集合中的元素。
redis2.6之后可以在命令后加一个count参数,指定随机返回的元素的个数。
如果count大于集合中的个数,则返回所有的元素。
负数的话取绝对值后然后返回指定元素。

127.0.0.1:6379> srandmember teacher
"zhang"
127.0.0.1:6379> srandmember teacher 3
1) "pan"
2) "liu"
3) "zuo"
127.0.0.1:6379> srandmember teacher 6
1) "zhang"
2) "huang"
3) "pan"
4) "liu"
5) "xue"
6) "zuo"
127.0.0.1:6379> srandmember teacher -3
1) "zuo"
2) "xue"
3) "pan"
127.0.0.1:6379> srandmember teacher 9
1) "zhang"
2) "huang"
3) "pan"
4) "liu"
5) "xue"
6) "zuo"
127.0.0.1:6379> 

在这里插入图片描述

spop命令

与srandmember命令相似,都是随机返回指定的元素,不同的是spop直接移除,srandmember只是随即返回。
随机返回集合中的元素并且移除。
redis2.6之后可以在命令后加一个count参数,指定随机返回的元素的个数并直接移除。
如果count大于集合中的个数,将所有的元素移除。
负数的话取绝对值后然后移除指定个数的元素。

127.0.0.1:6379> spop teacher 2
1) "zhang"
2) "xue"
127.0.0.1:6379> smembers teacher
1) "huang"
2) "pan"
3) "liu"
4) "zuo"
127.0.0.1:6379> 

在这里插入图片描述

smove命令

将指定的元素从一个集合移动到另一个集合中。
如果目的集合不存在,先创建,在移动到另一个集合中。

127.0.0.1:6379> smove teacher teacher_temp liu
(integer) 1
127.0.0.1:6379> smembers teacher
1) "huang"
2) "pan"
3) "zuo"
127.0.0.1:6379> smembers teacher_temp
1) "liu"
127.0.0.1:6379> 

在这里插入图片描述

sdidd命令

返回两个集合的差集。

127.0.0.1:6379> sdiff teacher teacher_temp
1) "huang"
2) "zuo"
3) "pan"
127.0.0.1:6379> smembers teacher_temp
1) "liu"
127.0.0.1:6379> smembers teacher
1) "huang"
2) "pan"
3) "liu"
4) "zuo"
127.0.0.1:6379> sadd teacher_temp zhao
(integer) 1
127.0.0.1:6379> smembers teacher_temp
1) "liu"
2) "zhao"
127.0.0.1:6379> sdiff teacher_temp teacher
1) "zhao"
127.0.0.1:6379> sdiff teacher teacher_temp
1) "huang"
2) "zuo"
3) "pan"
127.0.0.1:6379> 

在这里插入图片描述

sdiffstore命令

返回两个集合的差集并保存起来。和sdiff类似,不同的是会将差集结果保存起来。

127.0.0.1:6379> sdiff teacher teacher_temp
1) "huang"
2) "zuo"
3) "pan"
127.0.0.1:6379> sdiffstore teacher_dest teacher teacher_temp
(integer) 3
127.0.0.1:6379> smembers teacher_dest
1) "huang"
2) "zuo"
3) "pan"
127.0.0.1:6379> 

在这里插入图片描述

sinter命令

获取两个集合的交集。

127.0.0.1:6379> smembers teacher
1) "huang"
2) "pan"
3) "liu"
4) "zuo"
127.0.0.1:6379> smembers teacher_temp
1) "liu"
2) "zhao"
127.0.0.1:6379> sinter teacher teacher_temp
1) "liu"
127.0.0.1:6379> 

在这里插入图片描述

sinterstore命令

返回两个集合的交集并保存起来。和sinter类似,不同的是会将交集结果保存起来。

127.0.0.1:6379> sinter teacher teacher_temp
1) "liu"
127.0.0.1:6379> smembers teacher_temp
1) "liu"
2) "zhao"
127.0.0.1:6379> smembers teacher
1) "huang"
2) "pan"
3) "liu"
4) "zuo"
127.0.0.1:6379> sinterstore teacher_de teacher teacher_temp
(integer) 1
127.0.0.1:6379> smembers teacher_de
1) "liu"
127.0.0.1:6379> 

在这里插入图片描述

sunion命令

获取两个集合的并集。

127.0.0.1:6379> smembers teacher
1) "huang"
2) "pan"
3) "liu"
4) "zuo"
127.0.0.1:6379> smembers teacher_temp
1) "liu"
2) "zhao"
127.0.0.1:6379> sunion teacher teacher_temp
1) "zuo"
2) "pan"
3) "huang"
4) "liu"
5) "zhao"
127.0.0.1:6379> 

在这里插入图片描述

sunionstore命令

返回两个集合的并集并保存起来。和sunion类似,不同的是会将并集结果保存起来。

127.0.0.1:6379> smembers teacher
1) "huang"
2) "pan"
3) "liu"
4) "zuo"
127.0.0.1:6379> smembers teacher_temp
1) "liu"
2) "zhao"
127.0.0.1:6379> sunion teacher teacher_temp
1) "zuo"
2) "pan"
3) "huang"
4) "liu"
5) "zhao"
127.0.0.1:6379> sunionstore tea_dest teacher teacher_temp
(integer) 5
127.0.0.1:6379> smembers tea_dest
1) "zuo"
2) "pan"
3) "huang"
4) "liu"
5) "zhao"
127.0.0.1:6379> 

**加粗样式**

相关文章:

  • wordpress 分类目录 标签/免费网络推广的方法
  • 哪家公司建设网站/百度推广登陆
  • 学生求职网站的需求分析怎么做/网站优化排名方法
  • 笑话网站 wordpress/网站seo优化总结
  • 温州企业网站建设/合肥seo排名优化
  • 岳阳建设局网站/全网自媒体平台大全
  • 机械转码日记【20】vector及vector的模拟实现
  • django-设置X-Frame-Options响应头防止点击劫持攻击
  • java毕业设计垃圾分类网站Mybatis+系统+数据库+调试部署
  • 油猴插件安装以及好用的脚本推荐 包含电脑版本和手机版本
  • (附源码)计算机毕业设计SSM基于Java水果商城设计
  • 李宏毅2021《机器学习/深度学习》——学习笔记(3)
  • Lesson 52 A pretty carpet 漂亮的地毯
  • Mysql单表访问方法,索引合并,多表连接原理,基于规则的优化,子查询优化
  • 线段树2----简单拓展
  • linux服务器开发笔记(日志部分)strrchr()及strchr()
  • 基于FPGA的分形编码器verilog设计——详细版
  • jsp数据传递、九大内置对象、