Redis之集合类型

11-Redis 集合类型深度指南:从去重特性到集合运算场景落地 本文首先解析其底层哈希表实现带来的核心特性,对比集合与列表、有序集合类型的差异以明确适用边界;接着详解 8 大类核心命令的格式、实操案例与注意事项;然后结合存储文章标签(去重)、标签交集文章查询(集合运算)、存储用户好友列表(去重 + 共同好友)3 类典型场景说明应用方法;最后给出依赖 SMEMBERS 顺序、误解 SADD 返回值等 4 类新手避坑方案,助力读者掌握集合类型在 “去重 + 集合运算” 场景中的高效用法。 阅读详情

底层结构

  • intset(整数集合):当集合中的元素都是整数且元素个数小于set-maxintset-entries配置(默认512个)时,Redis会选用intset来作为集合的内部实现,从而减少内存的使用。
  • hashtable(哈希表):当集合类型无法满足intset的条件时,Redis会使用hashtable作为集合的内部实现。

intset:整形集合

  在inset.h文件中

typedef struct intset {
    uint32_t encoding;
    uint32_t length;
    int8_t contents[];
} intset;

属性介绍

  encoding:编码类型

 length:元素个数

 contents[]  :  元素存储

应用场景

共同好友、共同兴趣、分类标签

set操作命令【无序,不重复】

1.sadd:set中加入元素

2.srem:set中删除指定元素

3.scard :查看set集合长度

4.sismember: 查看指定元素是否存在

5.smembers : 查看某个集合的所有元素

6.spop:随机推出一个元素

 

集合间操作

1.sdiff      差集

2.sinter   并集

3.sunion    交集

深入解析Dataloader中shuffle机制与随机种子对模型训练的影响 本文深入探讨了Dataloader中shuffle机制与随机种子对机器学习模型训练的影响。通过实际案例分析,详细解释了数据打乱顺序的必要性、随机种子的正确设置方法以及两者协同工作的原理,帮助开发者避免常见陷阱并提升模型训练效果。 阅读详情

相关推荐

第零章 序 Chisel教程汇总

笔者目前西安交通大学微电子硕士在读,研究方向为数字集成电路设计与体系结构。鉴于目前RISC-V的火热程度,笔者参与了课题组的RISC-V项目,并了解、学习了颇受关注的新型硬件构建语言——Chisel,当前参与的神经网络加速器设计便是使用Chisel开发的。这是一门敏捷开发语言,据称要比传统的Verilog语言快很多。在亲身使用过后,笔者发现确实快了不少。这主要得益于Scala作为高级语言的简洁风格...

qq_34291505的博客 7万+

Redis(六):基础篇 - 集合类型

集合类型(Set)   在集合中每个元素都是不同的,且没有顺序;一个集合类型键可以存储至多2³² - 1个字符串。 集合类型和列表类型对比 特性 集合类型 列表类型 存储内容 至多 2³²- 1个字符串 至多 2³² - 1个字符串 有序性 否 是 唯一性 是 否   集合类型的常用操作是向集合中加入或删除元素、判断某个元素是否存在等,由于集合类型在Redis内部是使用值为空的散列表(hash table)实现的,所以这些操作的时间复杂度都是O(1)。多个集合类型键指尖还可以进行

HY0101的博客 607

HBuilderX远程开发环境配置:Windows SSH连接实操

详细介绍如何在Windows系统中通过SSH连接远程服务器,配置HBuilderX进行高效远程开发,提升编码协作效率。全程实操演示,轻松掌握hbuilderx与远程环境的无缝对接。

weixin_35751194的博客 1192

常用五大数据类型

1、字符串(String) String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。 String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象。 String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M 常用命令 set 添加键值对 get 查询对应键值 append 将给定的 追加到原值的末尾 strlen 获得值的长度 setnx 只有在

落叶 3090

两张 300I Duo 部署 Qwen3.5‑32B

开发者成功使用两张华为300IDuo(共4颗Ascend310P3芯片)部署Qwen3/Qwen3.5的30B/32B模型,并公开详细步骤。关键点包括:硬件需两张300IDuo(每芯片44GB显存),软件需CANN≥24.1和MindIE2.3.0专用镜像。部署流程涵盖驱动安装、模型下载(需修改为FP16格式)、容器启动、张量并行配置(TP=4)等环节。实测显示每芯片显存占用20-35GB,系统稳定运行。该方案已在知乎等平台验证可行,适用于Qwen3.5-32B等同类模型。

evering的博客 2254

学术报告系列(二) - 智能自主作业机器人感知与控制技术及发展趋势

收集整理于2022年模式识别高峰论坛湖南大学王耀南院士报告(报名题目:智能自主作业机器人感知与控制技术及发展趋势)

Make something people want. 4696

Redis集合类型

1.基本介绍 redis 的set 是string类型的无序集合 set最大可包含2^32-1个元素 关于set集合类型,除了基本的添加删除操作,其他有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)。通过这些可以很容易实现sns中好友推荐功能 注意:每个集合中各个元素不能重复 2.应用场景 qq好友推荐: zhangsan的朋友圈:a, b,c,d,e lisi的朋友圈:h,i, j,c, e 则推荐好友: c, e 3.常用

深漂小码哥 678

流体动力学仿真软件:XFlow_(20).案例研究:声学仿真

在流体动力学仿真软件中,声学仿真是一个重要的应用领域。通过数值模拟,工程师和科研人员可以预测和分析流体系统中的声学现象,如气动噪声、声波传播和声场分布。这些仿真结果对于优化设计、降低噪声水平和提高系统性能具有重要意义。本节将详细介绍如何在流体动力学仿真软件中进行声学仿真,包括声学模型的选择、参数设置、后处理分析等内容,并通过具体的案例来说明这些步骤。

kkchenjj的博客 902

【Redis】集合类型详解及实际应用场景分析:从命令操作到内部编码

如果 set1 和 set2 中都有一个 1,此时让 set1 的 1 移动到 set2 中,最终返回值是 1,即移动成功,set1 的 1 不见了,set2 的 1 也还在。注意,由于 set 内的元素是⽆序的,所以取出哪个元素实际是未定义⾏为,即随机删除,这里是真随机,而不是伪随机。这里的无序,是指变换一下元素的顺序,集合还是一样的集合,而不是说顺序逆序的无序。获取⼀个 set 的基数(cardinality),即 set 中的元素个数。获取⼀个 set 中的所有元素,注意,元素间的顺序是⽆序的。

Hsusan的博客 894

全功能tgbot/Telegram机器人多功能有后台版源码

trx兑换 闪兑 关键字监控 群管 usdt监控 余额查询 推广分享 等几乎常见的tg机器人功能都有。全功能tgbot/telegram机器人多功能有后台版源码-打包好的可以直接上手。

百创科技 2701

三维重建(十三)——多视角重建

本文综述了多视角三维重建技术,涵盖静态和动态场景的重建方法。介绍了从图像获取到纹理映射的SFM流程,以及非刚性重建(NRSFM)的挑战和解决方案。重点探讨了基于可微渲染的重建方法,以及数据采集策略、相机标定和同步技术。文章还讨论了如何用单视角相机模拟多视角重建,总结了关键技术和未来研究方向。

河海大学研究生在读的学习笔记 1058

Redis五大基本类型——Set集合命令详解(命令用法详解+思维导图详解)

SADD, SMEMBERS, SISMEMBER, SCARD, SRANDMEMBER, SPOP, SMOVE, SREM, SINTER, SINTERSCORE, SUNION, SUNIONSTORE, SDIFF, SDIFFSTORE

linsc_05的博客 1422

Python爬虫实战:用最新技术高效下载摄影网站图片

本文将深入探讨如何利用Python最新技术栈构建一个功能完整的摄影网站图片爬虫。我们将使用异步编程、智能反爬策略和现代化工具,实现高效、可靠的图片下载系统。高性能异步架构:使用asyncio实现高并发下载智能反爬策略:支持多种反爬措施和浏览器模拟多网站适配:可解析多种摄影网站结构数据管理:完整的下载记录和统计功能扩展性强:支持代理、分布式等高级功能用户友好:提供进度显示和详细日志。

2201_76125261的博客 1644

Redis 集合类型详解及应用

由于集合中的元素是无序的,所以取出哪个元素是随机的。上篇文章介绍的列表类型,集合类型也是保存多个字符串类型的元素的。:获取集合中的所有元素,注意元素间的顺序是无序的。:获取给定集合的交集中的元素并保存到目标集合中。:获取给定集合的并集中的元素并保存到目标集合中。:获取给定集合的差集中的元素并保存到目标集合中。:获取集合的基数,即集合中的元素个数。:获取给定集合的交集中的元素。:获取给定集合的并集中的元素。:获取给定集合的差集中的元素。

Y_1215的博客 1435

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【Redis】 关于 Redis 集合类型

集合类型是用来保存多个字符串类型的元素的,但和列表类型是不同的,集合中元素之间是⽆序的元素不允许重复。⼀个集合中最多可以存储 2^32 - 1 个元素。Redis 除了⽀持集合内的增删查改操作,同时还⽀持多个集合取交集、并集、差集,合理地使⽤好集合类型,能在实际开发中解决很多问题。

m0_71731682的博客 1299

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

《程序猿之Redis缓存实战 · 集合类型》

Redis 中的 Set 类型是一种无序集合,集合中的元素唯一,也就是集合中的元素是无重复的,有点类似于 Java 中的 HashSet。

山人行 1669

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Redis 入门 四 集合类型

3.5 集合类型 3.5.1 介绍 集合类型的常用操作是向集合中加入或删除元素,判断某个元素是否存在等,由于集合类型再Redis内部是使用值为空的散列表实现的,所以这些操作的时间复杂度都是O(1). 3.5.2 命令 增加/删除元素 SADD key member [member …] SREM key member [member …] SADD命令用来向集合中增加一个或多个元素,如...

SUNBO、的博客 486

【redis初阶】Set 集合类型

集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是,集合中1)元素之间是无序的;2)元素不允许重复;如图 2-24 所示。一个集合中最多可以存储 2^32 - 1 个元素。Redis 除了支持集合内的增删查改操作,同时还支持多个集合取交集、并集、差集,合理地使用好集合类型,能在实际开发中解决很多问题。图 2-24 集合类型二、基本命令2.1 SADD将一个或者多个元素添加到 set 中。注意,重复的元素无法添加到 set 中。1.0.0 之后O(1)本次添加成功的元素个数。

qq_52842680的博客 1007

【Redis】Set集合类型

Redis中的Set集合类型

qq_55119554的博客 1297

Redis 数据类型 Set 集合

集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是,集合中元素之间是⽆序的并且元素不允许重复,如下图所⽰。⼀个集合中最多可以存储 2^32 - 1 个元素。Redis 除了⽀持集合内的增删查改操作,同时还⽀持多个集合取交集、并集、差集,合理地使⽤好集合类型,能在实际开发中解决很多问题。:集合中的元素是无序的,不能通过索引访问元素。:集合中的元素是唯一的,不允许重复。:集合内部使用哈希表实现,因此添加、删除和查找操作的时间复杂度接近于 O(1)。

2301_79881188的博客 897

postgresql 集合类型_Redis 数据类型之集合(Set)类型

1. 集合(Set)类型Redis中的集合(Set)类型类似于List类型,Set类型可以认为是没有排序的字符串集合。和List类型一样,我们可以对集合类型进行元素的添加、删除或判断元素是否存在等操作。Set类型操作的时间复杂度为O(1),其最大元素数量为232-1(40亿)。和List类型不同的是,Set集合中不允许出现重复的元素,如果多次添加相同元素,Set中将仅保留该元素的一份拷贝。和Lis...

weixin_39611546的博客 953

redis集合类型

1.集合类型简介 数学中的集合是一组不重复,无序的元素集合。redis对应存在一种集合类型。但是redis集合类型分为有序和无序两种。 2.集合与散列表比较 redis集合在内部是使用没有值的散列表实现。所以集合和散列表在某些地方是有一些相似的   列表类型 无序集合 有序集合 内部数据结构 链表 无值的散列表 散列表和跳跃表 有序性 有序

shengshiqing的专栏 633

Redis集合类型数据的统计模式

Redis集合类型常见的四种统计模式,包括聚合统计、排序统计、二值状态统计和基数统计。 聚合统计 所谓的聚合统计,就是指统计多个集合元素的聚合结果,包括:统计多个集合的共有元素(交集统计);把两个集合相比,统计其中一个集合独有的元素(差集统计);统计多个集合的所有元素(并集统计)。 当你需要对多个集合进行聚合计算时,Set 类型会是一个非常不错的选择。不过,这里有一个潜在的风险:Set 的差集、并集和交集的计算复杂度较高,在数据量较大的情况下,如果直接执行这些计算,会导致 Redis 实例阻塞。 所以我们可

ggh0314的博客 1028

Redis之Set 集合类型

在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需要说明的是,这些操作的时间复杂度为O(1),即常量时间内完成次操作。Set可包含的最大元素数量是4294967295。 和List类型不同的是,Set集合中不允许出现重复的元素,这一点和C++标准库中的set容器是完全相同的。换句话说,如果多

幻羽公子的博客 486

理解 redis 中的 集合对象类型

这篇我们来看看Redis五大类型中的第四大类型:集合类型,集合类型还是蛮有意思的,第一个是因为它算是只使用key的Dictionary简易版,这样说来的话,它就比Dictionary节省...

dotNET跨平台 174

redis 删除set_Redis集合类型使用说明

今天我们了解一下Redis中的集合类型,也就是set集合。在Redis中set也是可以保存多个字符串的。那么set集合和list链表到底有什么不同呢?下面我们重点介绍一下它们之间的不同。set中的元素是不可以重复的,而list是可以保存重复元素的。set中的元素是无序的,而list中的元素是有序的。set中的元素不能通过索引下标获取元素,而list中的元素则可以通过索引下标获取元素。除此之外set...

weixin_39943202的博客 572
上一篇: Redis之列表类型
下一篇: Redis之有序集合
error0318
博客等级 码龄9年 57粉丝 515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值