redis的set集合的编码方式以及应用场景

AI辅助需求分析与提示词生成 文章标题 《AI辅助需求分析与提示词生成》 关键词 人工智能 需求分析 提示词生成 深度学习 机器学习 强化学习 数学模型 系统架构 阅读详情

与其是说set集合的编码方式,更通俗易懂的说法就是redis会根据set集合存的元素的类型和个数来决定set是以什么样子的形式存在,主要有两种:intset,hashtable;如果set存的都是整数,且个数少于redis的配置文件中配置的个数,那么set就会优化这些元素的存储方式,使他们占的内存更少,更节约内存;相反,如果个数大于配置的个数,或者是包含字符串,那么就会以hashtable的形式编码,能够更快的找到元素,实现更快的增删改查;具体我们可以来看几张图,

首先你可以在配置文件中看到个数配置的是512,我改成10,然后我们再来看看效果(修改配置一定要重启redis)

从上图可以看到,当key只有 1-9 9个数字的时候,编码类型还是intset,再插入一个10,还是intset,但是在插入11,个数大于配置的10个的时候,就变成了hashtable;从上面的现象也可以看出来,redis会根据配置的参数来调整set的编码方式;其实我不建议记这个数字没,因为从上面的操作就可以看出来,我们是可以改变这个参数的,我们只需要知道这个逻辑和原理就可以了;至于在实际的业务场景中,我们往往要考虑配置的数字能否提高我们的效率,简单来说要结合实际的业务来调整配置文件中的数字以达到最好的,最快的效果;

可以再来看一张图:

当集合中的元素都是整数,且个数少于配置的大小的话,就会以intset的编码方式,一但插入一个字符串,就会以hashtable的编码方式;

接下来介绍set的一些实际的应用场景:

1.用set来存储用户的“标签”

        这个标签指的我们通过分析用户的一些常有的行为,给这个用户打上一些属性或者性格,比如性别,爱好,个性等等,通过分析的用户的行为,得出用户的画像,以及用户的特征,然后我们就可以投其所好的给他推荐一个产品,视频等等,这种事情有好处也有坏处,坏处就是窥探用户的隐私嘛,但是实际生活每一个公司都有在收集用户的一些行为,从而给用户推荐更好更合适他的产品等等,也算是有好处,就比如淘宝,你经常搜衣服,那么你的淘宝肯定展示更多的就是衣服,你经常搜吃的,那么展示的肯定就是吃的,还比如视频软件,如果你经常刷国际新闻,那肯定会更多的给你推荐国际新闻,如果你更新看正能量视频,肯定多多给你推正能量视频;也是一个好处,能让用户经常看到自己喜欢的,喜欢吃的,但是也有坏处:“信息茧房”,也就是往往你能看到的都是算法给你推荐的,算法想让你看的,有些消息你就看不到,刷不到;

        通过给用户“标签”呢,别忘记了我们的set集合之间是可以做交并差集的,那么我们就可以拿不同的用户的标签来做对比,输出一样的,输出不一样的,如果是一样的,我们可以设法促进他们交流,比如都喜欢一个东西,那就可以促进消费嘛,这方面有益的是交友网站等等;

2、计算共同好友

3、统计UV

        先解释两个概念,PV指的是page view,就是一个页面被访问的次数,一个用户可以访问很多次,有时候我们可能只需要访问量,但是有时候我们就需要统计有多少个用户访问了,这时候就可以使用UV了,UV指的是user view,就是有多少个不同的用户访问,利用的正好就是set的去重效果,如果当前第一次访问,UV存的数字就+1,PV+1,如果当前用户不是第一次访问,那就只是PV+1,这样就可以很好的统计访问量,还可以对各个时间段的访问量做统计分析结果

利用Dify平台打造大学生专属AI模拟面试助手:从零到精通的完整指南 在这个充满竞争的就业市场中,拥有一个24小时在线的AI面试教练无疑是大学生求职路上的秘密武器。通过本文的指导,你已经掌握了使用Dify平台构建专业级模拟面试助手的全套技能。从环境部署、模型选择,到Prompt设计、知识库集成,再到高级功能开发和效果优化,我们一步步打造了一个能够适应不同岗位、提供专业反馈的智能面试系统。无论是技术岗的算法问答,还是咨询业的案例分析,或是外企的英语面试,你的定制助手都能提供针对性训练。更重要的是,这个方案具有极强的可扩展性。 阅读详情

相关推荐

libopus 实现pcm 编码到opus

opus 是一种音频格式,常用于语音通话、视频会议中。最近做了个pcm 到opus 的编码,踩了不少坑,特此记录一下。

sinat_27720649的博客 9472

Redis ⑦-set | Zset

Zset为有序集合,该集合为有序集合,可以存储多个不同的数据类型,包括字符串、整数、浮点数等。与setZset中的元素是按照顺序存放的,其通过存储 二元组,随即按照 score 对元素进行升序排序(默认为升序如果出现相同的score,则按照member的字典序进行排序。Zset中的 member 必须是唯一的,不可重复,但是 score 可以重复。

Themberfue的博客 1072

二、频率调制光谱(FMS)技术——error信号的数学模型及其他推论

一些推论。

qq_41111336的博客 1605

Redis --- 第四讲 --- 常用数据结构 --- set、zset

一文带你了解redis中的set集合zset的使用命令及使用场景。

m0_67635008的博客 1645

建议收藏:模拟版图高频面试题,直通面试,Offer抢先拿!

直击模拟版图面试

nuoweishizi的博客 6337

Linux与Windows双系统,安装完linux后无法通过grub进入Windows的解决方法

先装Windows 10,Windows可正常启动,再装Kali,Kali提示装grub后照装。然而装完后重启发现无Windows选项。

sakurashockwave的博客 6454

8.set类型

本文章主要对redis中的set类型的命令进行讲解,并在每一个命令后精心的附上了对应的运行截图,大家有感兴趣的可以按照博主讲解的自己再深入往下继续学习哦!

xinhang10的博客 1530

微信4.1.5.16升级后,你的自动化脚本失灵了?手把手教你用C#让UI树“复活”

微信4.1.5.16版本更新导致自动化脚本失效?本文深入解析微信UI树隐藏的原因,并提供C#实战解决方案,通过UIAutomation技术恢复UI树结构,帮助开发者重新实现自动化操作。涵盖技术原理、代码实现及优化策略,适合RPA开发者和自动化脚本编写者参考。

weixin_30879169的博客 519

Redis笔记——对象之 SET

Redis 对象之 无序集合Set

Jellylove0511的博客 603

1、信息与物理世界:“It from Bit”还是“Bit from It”?

这篇博文探讨了物理学与信息理论之间的深刻联系,从惠勒提出的“It from Bit”概念出发,讨论了信息是否是物质世界的基础,或者物质是否是信息的来源。文章回顾了2013年举办的征文竞赛以及众多学者对这一问题的不同观点,涵盖了量子理论、热力学、计算机科学、黑洞物理以及时空本质等多个领域。同时,文章还分析了信息理论在哲学层面的含义,并展望了其在未来理论、实验和应用研究中的潜力与方向。

water的专栏 289

把 ABAP 选择屏幕 Selection Screen 打造成可维护的交互面板:常用屏幕元素与动态控制全解析

本文详细介绍了ABAP报表中Selection Screen的设计技巧,包括空行(SKIP)、横线(ULINE)、注释(COMMENT)等基础元素的使用方法,以及如何通过MODIF ID实现动态界面调整。重点讲解了行内布局(BEGIN OF LINE)、按钮(PUSHBUTTON)和区块(BLOCK)等高级功能,帮助开发者将选择屏幕从"能用"提升到"好用、易扩展、可维护"的水平。文章还分享了项目实践中的命名规范和分组策略,特别适合需要优化ABAP报表用户体验的开发人员

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 332

Redis——常用数据类型set

Redis 常用数据类型set 常用指令,编码,应用场景

m0_70289867的博客 586

用R来做一个临床研究亚组分析的森林图

在编程语言里R语言最强大的功能是做图功能,我们知道在做Meta分析的时候会需要做森林图,实际上我们在很多临床研究中也经常看到森林图,主要是亚组分析的森林图,比如下面这篇文章里的一个森林图: 今天就教教大家怎么用R语言来做上面这种亚组分析的森林图 1. 在Excel里编辑好数据,按照下面的格式整理,保存为csv格式 2. 下载安装R跟Rstudio R软件的下载地址: https://mirrors.tuna.tsinghua.edu.cn/CRAN/ Rstudio下

Mrrunsen的博客 5340

redis set集合类型

redis中的set类型与list列表类似,都是可以存储多个字符串元素的集合,但是与list不同的是set集合中不允许重复的元素,而且set集合中的元素是没有顺序的,不存在元素下标! redis的set类型是使用哈希表构造的,支持集合内的增删改查,并支持多个集合间的交集,并集,差集操作! 它使用 REDIS_ENCODING_INTSET 和 REDIS_ENCODING_HT 两种方式编码: 如果第一个元素可以表示为 long long 类型值(也即是,它是一个整数), 那么集合的初始编码为 REDIS_

划水小老虎的博客 198

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Redis命令——set

set 常见命令,内部编码,应用场景

2301_80055001的博客 932

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

redis源码解读6

下面我看看集合对象,内部编码也有两种: intset hashtable 复制代码 同样的问题,分别什么条件用哪种编码呢? 当集合中元素都是整数且元素个数小于set-max-intset-entries(512),用intset作为内部实现,减少内存的使用,反之hashtable。 复制代码 看看set有哪些常用的命令呢? sadd:saddCommand srem scard sismember...

weixin_34250434的博客 444

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【死磕 Redis】----- Redis 数据结构: intset

原文:https://www.topjava.cn/category/1391389927996002304 『chenssy』 intset 是 Redis 实现 Set 的底层实现之一,当集合元素不大于设定值并且元素都是整数时,就会用 intset 作为 Set 的底层数据结构。 它有如下几个特点: 元素类型只能为数字 元素有三种类型:int16_t、int32_t、int64_t 元素有序且不可重复 和 SDS 一样,intset 也是内存连续的,就像数组一样 下面是数据结构的定义: typ.

chenssy 的技术博客 702

Redis的相关命令

1.string:redis中的字符串,直接按照二进制数据的方式进行存储的(不会做任何的编码转换,存的是啥,取的就是啥(不仅可以存储文本数据(MySQL的miring字符集是拉丁文,插入中文就会失败),整数,普通的字符串,JSON,xml,二进制数据(图片,视频,音频)))比如:游戏天梯排行榜,只需要把玩家的信息和对应的分数放到有序集合即可,就自动形成了一个排行榜,随时可以按照排行榜(下标)进行范围查询,随着分数的改变,也可以比较方便的,zincrby修改分数,顺序也能自动调整logN。

m0_75227031的博客 1627

redis srandmember_Redis-基础数据类型、编码、数据结构的关系

Redis构建的类型系统Redis构建了自己的类型系统,主要包括redisObject对象基于redisObject对象的类型检查基于redisObject对象的显示多态函数对redisObject进行分配、共享和销毁的机制C语言不是面向对象语言,这里将redisObject称呼为对象是为了讲述方便,让里面的内容更容易被理解,redisObject其实是一个结构体。redisObject对象Red...

weixin_39580042的博客 206

Redis五种基本数据类型

Redis 五种基本的数据类型分别是:String、List、Hash、Set、ZSet。这五种数据类型都是由Redis中的几种数据结构组成,然后封装在Redis的RedisObject中。所以我们先简单讲讲RedisObject的结构。

m0_59171600的博客 178

Redis数据类型及底层大剖析

Redis有丰富的数据类型,但最基本也是最常见的有下面五种:String、List、Set、Hset、Zset 数据类型整体来说会比较杂且枯燥一点,但是其在Redis中作用非常之大,为什么Redis能那么快呢,一方面来说因为其是内存型数据库,另外一方面也是因为其提供丰富的数据结构类型来加速性能。所以可以说这是学习Redis的第一关。

xxxzzzqqq_的博客 247

Redis命令与数据结构

Redis常用命令与数据结构。

孤夜的博客 336

Redis原理学习

/5种可能的Redis对象类型,string、hash、list、set、和zset,占4个bit, 半个字节 unsigned encoding : 4;//底层对应的数据结构类型/编码存储方式 共有11种,占4个bit,半个字节 unsigned lru : LRU_BITS;

Hunter_Kevin的博客 597

redis 数据结构有哪些?

redis 在线测试工具https://try.redis.io/ 如果你对redis的命令等不熟悉,可以在此测试。

shiyunzhe2021的博客 127

软件工程 设计customdiscount的数据对象(数据结构_Redis数据结构与对象编码解析

数据结构实现相信大家对 redis 的数据结构都比较熟悉:string:字符串(可以表示字符串、整数、位图)list:列表(可以表示线性表、栈、双端队列、阻塞队列)hash:哈希表set:集合zset:有序集合为了将性能优化到极致,redis 作者为每种数据结构提供了不同的实现方式,以适应特定应用场景。以最常用的 string 为例,其底层实现就可以分为 3 种:int, embstr, raw1...

weixin_31036469的博客 335

【Redis初阶】Set 集合

集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是1)set集合中元素之间是无序的(这里的无序是和前面 list 的有序是对应的有序:顺序很重要,变换一下顺序,就是不同的list无序:顺序不重要,变换一下顺序,集合还是呢个集合)2)元素不允许重复(唯一的),如图所示。一个集合中最多可以存储 2 ^32 - 1 个元素。Redis 除了支持集合内的增删查改操作,同时还⽀持多个集合取交集、并集、差集,合理地使用好集合类型,能在实际开发中解决很多问题。

明志の博客 1460
上一篇: redis的set集合的常规使用
下一篇: redis-zset数据类型的常见指令(sorted set)
a添砖Java
博客等级 码龄4年 498粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a添砖Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值