【Redis7】10大数据类型之Set类型

文章目录

  • 1.Set类型
  • 2.常用命令:
  • 3.示例
    • 3.1 SADD,SMEMBERS和SISMEMBER
    • 3.2 SREM和SCARD
    • 3.3 SRANDMEMBER和SPOP
    • 3.4 SMOVE
  • 4.集合运算相关命令
    • 4.1 集合交集 (SINTER)
    • 4.2 集合并集 (SUNION)
    • 4.3 集合差集 (SDIFF)
    • 4.4 Redis7新命令sintercard

1.Set类型

Redis的Set类型是一个无序的不重复字符串集合。

2.常用命令:

  • SADD key member [member ...]:向集合添加一个或多个成员,如果成员已存在则不执行任何操作。
  • SMEMBERS key:返回集合中的所有成员。
  • SISMEMBER key member:判断成员是否在集合内。
  • SREM key member [member ...]:从集合中移除一个或多个成员。
  • SCARD key:返回集合中元素的数量。
  • SPOP key [count]:随机移除并返回集合中的一个或多个成员。
  • SRANDMEMBER key [count]:随机返回集合中的一个或多个成员,但不移除。
  • smove source destination member:将一个集合中的成员移动到另一个集合中
  • SINTER key [key ...]:返回给定集合的交集。
  • SUNION key [key ...]:返回给定集合的并集。
  • SDIFF key [key ...]:返回给定集合的差集,即存在于第一个集合但不存在于其他集合的成员。

3.示例

3.1 SADD,SMEMBERS和SISMEMBER

SADD key member [member ...]:向集合添加一个或多个成员,如果成员已存在则不执行任何操作。

SMEMBERS key:返回集合中的所有成员。

SISMEMBER key member:判断成员是否在集合内。 如果有返回1,没有返回0

127.0.0.1:6379> sadd set1 1 1 2 2 3 3 
(integer) 3 # 去重
127.0.0.1:6379> smembers set1
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> sismember set1 3
(integer) 1
127.0.0.1:6379> sismember set1 4
(integer) 0
127.0.0.1:6379> 

3.2 SREM和SCARD

SREM key member [member ...]:从集合中移除一个或多个成员。

SCARD key:返回集合中元素的数量。

127.0.0.1:6379> srem set1 1 # 删除1
(integer) 1
127.0.0.1:6379> scard set1 
(integer) 2 # 还剩2个元素
127.0.0.1:6379> srem set1 2 3 # 删除 2 3
(integer) 2
127.0.0.1:6379> scard set1
(integer) 0  # 还剩0元素
127.0.0.1:6379> 

3.3 SRANDMEMBER和SPOP

SRANDMEMBER key [count]:随机返回集合中的一个或多个成员,但不移除。

127.0.0.1:6379> sadd set1 1 2 3 4 5
(integer) 5
127.0.0.1:6379> srandmember set1 1 # 随机返回一个元素
1) "2"
127.0.0.1:6379> srandmember set1 3 # 随机返回三个元素
1) "3"
2) "4"
3) "1"
127.0.0.1:6379> scard set1
(integer) 5  # set集合不变
127.0.0.1:6379> 

SPOP key [count]:随机移除并返回集合中的一个或多个成员。

127.0.0.1:6379> spop set1 1 # 随机返回并删除一个元素
1) "1"
127.0.0.1:6379> smembers set1 
1) "2"
2) "3"
3) "4"
4) "5"
127.0.0.1:6379> spop set1 3 # 随机返回并删除三个元素
1) "3"
2) "2"
3) "4"
127.0.0.1:6379> smembers set1
1) "5"

3.4 SMOVE

smove source destination member:将一个集合中的成员移动到另一个集合中

  • source:源集合的键名,即成员当前所在的集合。
  • destination:目标集合的键名,即成员要移动到的集合。
  • member:要移动的成员。
127.0.0.1:6379> sadd set1 1 2 3 4 5
(integer) 4
127.0.0.1:6379> sadd set2 a b c
(integer) 3
127.0.0.1:6379> smove set1 set2 1
(integer) 1
127.0.0.1:6379> smembers set2
1) "a"
2) "c"
3) "b"
4) "1"
127.0.0.1:6379> 

4.集合运算相关命令

4.1 集合交集 (SINTER)

SINTER key [key ...]:返回给定集合的交集。

127.0.0.1:6379> sadd set1 1 2 3 a b c
(integer) 6
127.0.0.1:6379> sadd set2 2 3 4 c d e
(integer) 6
127.0.0.1:6379> sinter set1 set2
1) "3"
2) "c"
3) "2"
127.0.0.1:6379> 

4.2 集合并集 (SUNION)

SUNION key [key ...]:返回给定集合的并集。

127.0.0.1:6379> sadd set1 1 2 3 a b c
(integer) 6
127.0.0.1:6379> sadd set2 2 3 4 c d e
(integer) 6
127.0.0.1:6379> sunion set1 set2
1) "e"
2) "a"
3) "c"
4) "b"
5) "3"
6) "2"
7) "4"
8) "1"
9) "d"
127.0.0.1:6379> 

4.3 集合差集 (SDIFF)

SDIFF key [key ...]:返回给定集合的差集,即存在于第一个集合但不存在于其他集合的成员。

127.0.0.1:6379> sadd set1 1 2 3 a b c
(integer) 6
127.0.0.1:6379> sadd set2 2 3 4 c d e
(integer) 6
127.0.0.1:6379> sdiff set1 set2
1) "a"
2) "b"
3) "1"
127.0.0.1:6379> sdiff set2 set1
1) "e"
2) "d"
3) "4"
127.0.0.1:6379> 

4.4 Redis7新命令sintercard

sintercard numkeys key [key ...] [LIMIT limit]:它不返回结果集,而只返回结果的基数(个数)。返回由所有给定集合的交集产生的集合的基数

127.0.0.1:6379> sinter set1 set2 # 返回结果集
1) "c"
2) "3"
3) "2"
127.0.0.1:6379> sintercard 2 set1 set2 # 返回结果集的个数
(integer) 3
127.0.0.1:6379> sintercard 2 set1 set2 limit 2 # 限制返回结果的个数
(integer) 2
127.0.0.1:6379> 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/834276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正则表达式-前瞻和后顾

正则表达式中的前瞻和后顾。 前瞻(Lookahead) 前瞻是一种断言,它会检查在当前位置之后是否存在某种模式,但不会实际匹配该模式。前瞻有两种形式: 正向前瞻 (?pattern) 检查当前位置之后是否存在指定的模式如果存在,则匹配成功,但不会消耗该模式例如 \w(?\d) 将匹配后面跟数…

RAG 场景对Milvus Cloud向量数据库的需求

虽然向量数据库成为了检索的重要方式,但随着 RAG 应用的深入以及人们对高质量回答的需求,检索引擎依旧面临着诸多挑战。这里以一个最基础的 RAG 构建流程为例:检索器的组成包括了语料的预处理如切分、数据清洗、embedding 入库等,然后是索引的构建和管理,最后是通过 vecto…

学习笔记:【QC】Android Q : telephony-phone 模块

一、phone init 流程图 高清的流程图参考:【高清图,保存后可以放大看】 二、phone MO 流程图 高清的流程图参考:【高清图,保存后可以放大看】 三、phone MT 流程图 高清的流程图参考:【高清图,保存后可以…

提升工作效率,用ONLYOFFICE打造高效团队协作环境

作为一名深耕技术领域已有六七年的开发者,同时又是断断续续进行技术创作将近六年的一个小小作者,我在工作和日常生活中,使用过各色各样的软件。 而在最近几年,一款名为ONLYOFFICE的开源办公套件逐渐走进并融入我的工作与生活&…

paraview 处理 fluent 计算结果

paraview 处理 fluent 计算结果 参考链接:https://zhuanlan.zhihu.com/p/598032490 希望先生的主页也很有价值:https://www.cnblogs.com/Xiwang-Sun/p/14943429.html

如何在适用于 Linux 的 Visual Studio Code 中使用 .NET 8 上的 FastReport Avalonia

我们将继续撰写有关在各种操作系统上的 Visual Studio Code 中使用 FastReport Avalonia 的系列文章。在本文中,我们将详细分析如何使用 Visual Studio Code IDE 在 Linux 操作系统上运行 FastReport Avalonia。 Avalonia UI 是一个积极用于开发跨平台用户界面的 .…

Hyper-V 管理器安装的ubutun扩容磁盘空间说明

一、删除检查点 首先把这个想要扩容的虚拟机停止掉,然后找到检查点,全删除掉,否则没法编辑这个虚拟磁盘。 二、编辑虚拟磁盘 下面截图中下一步不能点击的,只要删除检查点之后就可以点击了。点击下一步然后选择扩容,然后…

组合模式(结构型)

目录 一、前言 二、透明组合模式 三、安全组合模式 四、总结 一、前言 组合模式(Composite Pattern)是一种结构型设计模式,将对象组合成树形结构以表示“部分-整体”得层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合模式由以下角色组成…

SpringSecurity源码分析(RemeberMe)

RememberMeServices RememberMeServices 记住我的服务的接口 可以重写实现自己的记住我 public interface RememberMeServices { //建议 org. springframework. security. authentication. RememberMeAuthenticationToken 在大多数情况下使用它,因为它具有相应的身份…

词袋法TFIDF

Tf-idf⽂本特征提取 TF-IDF的主要思想是:如果某个词或短语在⼀篇⽂章中出现的概率⾼,并且在其他⽂章中很少出现,则认为此词或者短语具有很好的类别区分能⼒,适合⽤来分类。TF-IDF作⽤:⽤以评估⼀字词对于⼀个⽂件集或…

OpenAI 发布 AI 生成图片检测器;Meta 推出 AI 广告创意工具;Google 正式发布 Pixel 8a,主打 AI

OpenAI 发布 AI 生成图片检测器 OpenAI 昨日官宣推出专用的 AI 监测工具,用于监测图片是否由其旗下 AI 图片生成工具 DALL-E 生成,准确率高达 98.8%。 不过该公司表示,这个检测工具并非旨在检测 Midjourney 和 Stability 等其他流行生成器生…

安卓使用Fiddler抓包 2024

简介 最近试了一下安卓使用fiddler 抓包,发现https包基本都会丢失。原因是Anandroid 7版本针对ssl安全性做了加强,不认可用户的证书。我们要做的就是把fiddler导出的证书进过处理后放置到系统证书目录下面,这样才能抓包https请求。 这里使用…

https介绍,加密解密(举例+必要性,对称/非对称加密介绍),数字摘要/指纹(介绍,应用(session id,网盘的秒传功能))

目录 https 引入 介绍 加密解密层 介绍 没有绝对的安全 使用ssl的弊端 加密解密 概念 加密 解密 秘钥 举例 现实中 网络中 加密的必要性 常见加密方式 对称加密 特点 非对称加密 特点 数字摘要/指纹 介绍 应用 session id 百度网盘的秒传功能 https …

21_Scala集合_可变数组ArrayBuffer

文章目录 ArrayBuffer1.创建可变数组ArrayBuffer2.增加数据3.删除数据4.修改数据5.查询数据Appendix ArrayBuffer ArrayBuffer可变数组–感觉优点类似于Java的ArrayList 1.创建可变数组ArrayBuffer –请注意下面的mutable import scala.collection.mutable.ArrayBuffer //m…

DuDuTalk:4G桌面拾音设备在银行网点服务场景的应用价值

随着科技的飞速发展,银行业也在不断地寻求创新以提高服务质量和效率。在这个过程中,4G桌面拾音设备作为一种新型的智能设备,其在银行网点服务场景中的应用价值逐渐凸显出来。本文将从多个角度探讨4G桌面拾音设备在银行网点服务场景的应用价值…

英语学习笔记6——What make is it?

What make is it? 它是什么牌子的? make n.(产品的)品牌名称    v. 制作 区别:model n.(产品的)型号       n. 模型       n. 模特 make 指的是大的品牌名称, model 是旗下产品…

OpenHarmony 实战开发——南向统一编译的docker镜像来了

由于我自己的南向设备开发平台的需求,我将当前几个不同的 docker 镜像版本进行了整合,经过一段时间的攻关和验证,目前整合已完成,新版本的 Dockerfile 如下,这个不是公共需求,所以没有提交主干,…

Web APIs 学习归纳8---移动端特效

上一节学习了PC端的特效,现在学习移动端的特效。 一、移动端触屏事件 1.1 触屏事件概述 移动端浏览器兼容性较好,我们不需要考虑以前 JS 的兼容性问题,可以放心的使用原生 JS 书写效果,但是移动 端也有自己独特的地方。比如触屏…

容联云孔淼:大模型落地与全域营销中台建设

近日,由金科创新社主办的2024区域性商业银行数智化转型研讨会顺利召开, 容联云产业数字云事业群副总经理、诸葛智能创始人孔淼受邀出席,并分享数智化转型实践经验。 他分享了容联云两大核心产品,“大模型应用容犀Copilot”在金融营…

TypeScript 基础学习笔记:interface 与 type 的异同

🔥 个人主页:空白诗 文章目录 TypeScript 学习笔记:interface 与 type 的异同🎣 引言🚀 快速入门1️⃣ Interface(接口)📋 定义🤝 实现💡 特点 2️⃣ Type Al…