初识redis:Set类型
Set有很多种含义,比如集合,比如设置(和get相对应)。
在这里我们说的set是指的redis中的集合,并且这里的集合是无序的,和之前的list是对应的。
- List : [1,2,3] 和 [2,1,3] 是两个不同的list
- Set : [1,2,3] 和 [2,1,3] 是两个相同的集合
目录
基本操作
SADD SMEMBERS SISMEMBER
SPOP
SMOVE
SREM
交集、并集、差集
SINTER
SINTERSTORE
SUNION
SUNIONSTORE
SDIFF
SDIFFSTORE
Set的应用场景
基本操作
SADD SMEMBERS SISMEMBER
SADD:添加元素到集合中
SMEMBERS:查询集合的元素
SISMEMBER:查询某个元素是否在集合中。
SADD key member [member ...]
SMEMBERS key
SISMEMBER key
把集合中的元素叫做member,并且当出现重复的元素的时候,只算同一个元素。


SPOP
SPOP key [count]
不写count的时候,就是随机删除一个,写的时候就是写几个删除几个。并且删除的时候是随机删除元素,跟插入的顺序没有关系。

SMOVE
SMOVE source destination member
把member从source上删除,再插入到destination中。

如果要移动的数字在destination中已经有了,那么仍然会按照删除再插入的操作进行,但是插入会不会有效果。
如果要移动的数字在source中没有,会操作失败。
SREM
可以一次删除一个member,也可以一次删除多个member
SREM key member [member...]
交集、并集、差集
SINTER
求交集
SINTER key [key ...]
此处的每个key都对应一个集合,返回值就是最终交集的数据。

SINTERSTORE
直接把算好的交集,放到destination这个key对应的集合中了。
SINTERSTORE destination key [key ...]

SUNION
求并集
SUNION key [key ...]

SUNIONSTORE
和上面的一样,把并集储存到destination中。
SDIFF
求差集
SDIFF key [key ...]
返回值是差集的个数。

SDIFFSTORE
和上面的一样,把差集存储到destination中。
总结:
| 命令 | 时间复杂度 |
|---|---|
SADD key element[element...] | O(k), k是元素个数 |
SREM key element[element...] | O(k), k是元素个数 |
SCARD key | O(1) |
SISMEMBER key element | O(1) |
SRANDMEMBER key[count] | O(n), n是count |
SPOP key[count] | O(n), n是count |
SMEMBERS key | O(k), k是元素个数 |
SINTER key[key...] SINTERSTORE | O(m*k), k是几个集合中元素最小的个数, m是 |
SUNION key[key...] SUNIONSTORE | O(k), k是多个集合的元素个数总和 |
SDIFF key[key...] SDIFFSTORE | O(k), k是多个集合的元素个数总和 |
Set的应用场景
- 使用Set来保存用户的“标签”
- 使用Set来计算用户之间的共同好友
- 使用Set统计UV(去重)
相关文章:
初识redis:Set类型
Set有很多种含义,比如集合,比如设置(和get相对应)。 在这里我们说的set是指的redis中的集合,并且这里的集合是无序的,和之前的list是对应的。 List : [1,2,3] 和 [2,1,3] 是两个不同的listSe…...
Qt 设置QTableView的某列或某行只读
我的做法是实现一个委托(delegate),然后把它设给你要只读的列或行 class ReadOnlyDelegate: public QItemDelegate {public:ReadOnlyDelegate(QWidget *parent NULL):QItemDelegate(parent){}QWidget *createEditor(QWidget *parent, const…...
这么多焊工证,我该拥有那种焊工证呢?
焊接与切割作为特种作业工作,国家根据不同的环境和作业特点,从事焊接工作的焊工需要持证上岗工作,那么是不是焊接就只有一种工作证呢?如果不是,焊工所在的工作岗位需要什么样的焊工证,如何取得焊工证&#…...
HttpWebRequest访问https请求被中止: 未能创建 SSL/TLS 安全通道
编写代码,使用HttpWebRequest访问网页,错误提示: 未能创建 SSL/TLS 安全通道 页面本来是Http网址,突然转换为https网址,所以遇到这个问题也算正常。将解决方法记录下来给需要的人。 //只需要在 HttpWebRequest 发送…...
响应式Web设计:纯HTML和CSS的实现技巧
文章目录 响应式Web设计:纯HTML和CSS的实现技巧一、响应式Web设计概述二、实现响应式设计的技巧1. 使用媒体查询(Media Queries)2. 使用弹性布局(Flexbox)3. 使用网格布局(CSS Grid)4. 使用相对…...
linux centos 防火墙常用命令
1、开放端口 firewall-cmd --zonepublic --add-port80/tcp --permanent 1 2、查看某端口是否开放 firewall-cmd --query-port80/tcp 1 3、查看端口开启列表 firewall-cmd --list-port 1 4、重启防火墙 firewall-cmd --reload 1 5、关闭防火墙 systemctl stop firewalld.se…...
iOS18 Beta7 最终测试版推送:苹果的又一次技术飞跃
苹果公司以其一贯的创新精神和对完美的追求,再次引领了科技界的新潮流。今天,我们聚焦于苹果最新推送的iOS18 Beta7最终测试版,这一版本不仅是苹果软件更新的里程碑,更是用户体验的一次重大升级。 最终测试版的亮相 在众多果粉的…...
超详细!2024叉车证办理及考试流程详解!速看!
根据《特种设备安全监察条例》规定:叉车操作员必须经专业培训和考核,取得地、市级以上质量技术监督行政部门颁发的作业人员资格证书,方可从事该项工作。叉车驾驶证是属于特种车辆驾驶证,要到全国市级质量监督局指定叉车训练基地报…...
浅谈监听器插件之SSHMon Samples Collector
浅谈监听器插件之SSHMon Samples Collector SSHMon Samples Collector 是 JMeter 的一个强大插件,它允许用户通过 SSH 协议远程监控目标服务器的资源利用率,为性能测试提供实时的系统性能数据。这对于评估应用在高负载条件下的表现以及定位性能瓶颈至关…...
R语言论文插图模板第7期—分组散点图
在之前的文章中,分享过R语言折线图的绘制模板: 柱状图的绘制模板: 本期再来分享一下散点图(分组)的绘制方法。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,…...
设计模式 抽象工厂方法模式
定义与特点 工厂方法模式(FactoryMethod),定义一个创建产品对象的工厂接口,让工厂子类决定实例化那一个产品类。工厂方法使一个类的实例化延迟到其子类。 我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂…...
PowerShell 一键配置IP
前言 实现一键更改Windows 网卡IP,子网,网关,dns,重命名网卡,获取的接口索引名称,获取接口名称,刷新组策略,刷新系统,脚本可重复配置,,以下环境我是两个网卡配置IP 前提条件 开启wmi,配置网卡,参考 创建更改网卡脚本 实验环境,两个网卡,清除默认,重命名(配置)…...
【Pyhthon读取 PDF文件表格 ,转为 CSV/TSV/JSON文件】
tabula-py tabula-py 是一个将 PDF 表格转换为 pandas DataFrame 的工具。 tabula-py 是 tabula-java 的包装器,需要您的机器上有 java。 tabula-py 还允许您将 PDF 中的表格转换为 CSV/TSV 文件。 tabula-py 的 PDF 提取准确度与 tabula-java 或 tabula app 相…...
<数据集>商品条形码识别数据集<目标检测>
数据集格式:VOCYOLO格式 图片数量:3748张 标注数量(xml文件个数):3748 标注数量(txt文件个数):3748 标注类别数:1 标注类别名称:[Barcode] 序号类别名称图片数框数1Barcode37484086 使用标注工具&am…...
无人机系统的关键技术
一、飞控系统:是无人机完成整个飞行过程的关键,决定了无人机的飞行性能和稳定性。 二、导航系统:提供无人机所需的位置、速度和飞行姿态等信息,引导无人机按照指定航线飞行。 三、动力系统:提供飞行动力,…...
(24)(24.4) MultiWii/DJI/HDZero OSD (version 4.2 and later)(一)
文章目录 前言 1 基于遥测的OSD 前言 ArduPilot 使用基于MSP(MultiWii 串行协议)的协议支持多种类型的屏幕显示(OSD): 基于 MSP 遥测的操作系统,如大疆 FPV 护目镜 V1/V2、大疆护目镜 RE、FatShark Byte…...
HiveSQL:提取json串内容——get_json_oject和json_tuple
提取json串中内容,json格式示例如下 方法(运行环境Hive) get_json_objectjson_tuple get_json_object select json_data,get_json_object(json_data,$.price) as price -- 取第一层,get_json_object(json_data,$.inquiry_params) as in…...
Clickhouse 二进制安装
下载对应版本https://github.com/ClickHouse/ClickHouse 分别选择arm64/x86_64 对应的tgz 场景是需要把ck所有文件安装指定目录,使用rpm会散布在各个目录不方便管控 下载client,common-static,server这三个 将相同的目录合并成一个(这里注意需要在l…...
大数据开发工程师面试整理-项目经验
在面试或职业发展中,分享项目经验是展示个人能力和专业知识的重要途径。大数据开发工程师的项目经验通常涉及数据处理、系统设计、性能优化以及与团队协作等多个方面。以下是如何有效地展示大数据项目经验的指导,以及一个示范性的项目经验描述。 1. 结构化描述项目经验 ● 项…...
游戏引擎详解——图片
图片 图片的格式 图片文件格式pngjpg 纹理压缩格式ETC1/2PVRTCASTC 图片的属性 图片属性解释分辨率宽高像素值(pt),如:1024*1024位深度用来存储像素颜色的值,如RGBA8888,红黄蓝透明度4个维度每个8bit&…...
突破性解决方案:Noto Emoji如何彻底终结表情符号乱码问题
突破性解决方案:Noto Emoji如何彻底终结表情符号乱码问题 【免费下载链接】noto-emoji Noto Emoji fonts 项目地址: https://gitcode.com/gh_mirrors/no/noto-emoji 你是否曾在不同设备上看到同一个表情符号显示为"□□"乱码?或者发现同…...
探索混沌之美:Chaos项目中逻辑斯蒂映射的三种可视化方法
探索混沌之美:Chaos项目中逻辑斯蒂映射的三种可视化方法 【免费下载链接】Chaos Visualizations of the connections between chaos theory and fractals through the logistic map; made for Veritasium YouTube video 项目地址: https://gitcode.com/gh_mirrors…...
kill-doc:打破文档平台壁垒,一键下载30+主流文库的终极解决方案
kill-doc:打破文档平台壁垒,一键下载30主流文库的终极解决方案 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档…...
从零构建本地AI编程助手:Mervelas的隐私优先架构与Bun技术栈实践
1. 项目概述:一个为开发者主权而生的本地AI编程助手 如果你和我一样,对市面上那些“全家桶”式的AI编程助手感到厌倦——它们要么偷偷收集你的代码数据,要么把你锁死在某个特定的云服务里,用起来总感觉束手束脚——那么ÿ…...
收藏!小白程序员必看:AI浪潮下如何抓住高薪大模型机遇?
脉脉最新报告显示,AI岗位需求暴涨12倍,平均月薪超6万。大模型相关岗位尤为抢手,年薪百万起步。传统程序员面临转型危机,但可从系统学习AI、结合传统经验与AI、转型AI产品经理等三条路应对。文章提供具体学习建议,强调持…...
RDP Wrapper Library技术架构深度解析
RDP Wrapper Library技术架构深度解析 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap RDP Wrapper Library是一个Windows系统服务层中间件,通过在服务控制管理器与终端服务之间建立拦截层,为…...
本地搭建React Server Components:从原理到实践深度解析
1. 项目概述:当Server Components从概念走向你的本地环境如果你最近关注前端技术动态,一定对“Server Components”这个词不陌生。它被描述为React生态的一次范式转移,承诺带来更小的客户端包体积、更直接的数据库访问和更快的首屏渲染。但说…...
Kafka 核心组件及其作用(全解)
Kafka 是一个分布式、高吞吐量、高可用的消息队列与流处理平台,其架构设计围绕"水平扩展、持久化存储、低延迟"三大核心目标展开。以下是 Kafka 所有核心组件的详细解析,包含原理、作用、关键特性和生产级最佳实践。 一、Kafka 整体架构概览 K…...
00-Docker和Docker-compose的安装
一、Docker的安装1.下载docker与依赖组件# 下载依赖组件 yum -y install yum-utils device-mapper-persistent-data lvm2# 导入docker官方仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 下载docker yum -y install do…...
遗传算法混合动力汽车控制策略【附代码】
✨ 长期致力于混合动力汽车、能量管理策略、模糊控制、遗传算法研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)多目标分层编码与种群初始化策略&…...
