首页 > 数据库 >redis自学(10)Set

redis自学(10)Set

时间:2024-03-04 14:44:32浏览次数:25  
标签:10 set 编码 元素 redis 查询 Set entries

Set是Redis中的单列集合,满足下列特点:

不保证有序性

保证元素唯一(可以判断元素是否存在)

求交集、并集、差集

 

 

以上操作,都需要判断元素是否存在,因此可以看出,Set对查询元素的效率要求非常高

 

Set是Redis中的集合,不一定确保元素有序,可以满足元素唯一、查询效率要求极高。

为了查询效率和唯一性,set采用HashTable编码(Dict)。Dict中的key用来存储元素,value统一为null。(java里面的HashSet是同样的道理)

当存储的所有数据都是整数,并且元素数量不超过set-max-inset-entries时,Set会采用IntSet(底层看做是变长的数组,按照升序保存,用二分查找查找)编码,以节省内存。在每一次插入集合的时候,都会检查以上两个条件,一旦不符合,就会转换成HashTable编码。set-max-inset-entries的默认值为512,可修改但不建议太大,影响查询性能。

 

 

 

 

内存结构变化:

 

 

 

 

标签:10,set,编码,元素,redis,查询,Set,entries
From: https://www.cnblogs.com/bulesea/p/18051772

相关文章

  • 使用setmetatable和__call元方法来实现根据字符串名字调用对应的函数
    cc.lualocalCMD={}--定义两个函数functionCMD.func1()print("Function1called")endfunctionCMD.func2()print("Function2called")endreturnCMD test.lualocalfunctions=require"cc"--设置表的元表和__call元方法se......
  • vue3中使用@vue-office/pdf项目中报Cannot set properties of undefined (setting 'wi
    最近项目研发的时候需要使用到pdf预览的功能,规定需要使用@vue-office/pdf插件0.2.5版本号,在使用的时候,一直无法正常运行,错误如下 但是在其他项目中却可以正常使用,想来应该是项目中的某个插件和这个有影响(不兼容)导致pdf无法预览,最终确定是vue版本的问题。正常使用的版本应该为......
  • Redis技术论点
    Redis单线程&&多线程问题redis是单线程还是多线程在redis4.X之前的版本,redis是单线程;redis4.X版本之后,陆续开始支持多线程,比如持久化过程,但是核心工作线程仍然是单线程;redis6.X之后,redis针对部分设计大量数据操作,存在阻塞线程风险的命令提供了异步操作,如:zrange、ZRANK、flusdb等......
  • P10220 [省选联考 2024] 迷宫守卫 题解
    说一下自己赛时做法。赛时会了,但没能调出来,几乎确定进不去队了,留下这篇题解作为这次比赛的记录吧。称激活守卫为打开开关。首先考虑,如果确定所有开关的情况,Bob有一个简单的贪心做法:当走到一个点时,递归其左右子树并得到两个序列,若右子树的对应序列的小于左子树的对应序列,则右边......
  • MBR10200FCT-ASEMI适配开关电源MBR10200FCT
    编辑:llMBR10200FCT-ASEMI适配开关电源MBR10200FCT型号:MBR10200FCT品牌:ASEMI封装:ITO-220AB最大平均正向电流(IF):10A最大循环峰值反向电压(VRRM):200V最大正向电压(VF):0.90V工作温度:-65°C~175°C反向恢复时间:ns重量:1.5615克芯片个数:2芯片尺寸:102mil正向浪涌电流(IFMS):150AMBR1......
  • P10220 [省选联考 2024] 迷宫守卫
    二分+贪心+DP。跟D1T2思路有点类似,反正很简单。复杂度大约是\({\rmO}(n^22^n)\)。#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintN=1e5+5;constllinf=1e18;intT,n,q[N];llK,w[N];vector<int>Q;lldp(into,intd,in......
  • KBP310-ASEMI小功率电源适配器KBP310
    编辑:llKBP310-ASEMI小功率电源适配器KBP310型号:KBP310品牌:ASEMI封装:KBP-4正向电流(Id):3A反向耐压(VRRM):1000V正向浪涌电流:60A正向电压(VF):1.10V引脚数量:4芯片个数:4芯片尺寸:MIL功率(Pd):大功率设备工作温度:-55°C~150°C类型:插件整流桥KBP310整流桥描述:ASEMI品牌KBP310是......
  • 【C++ STL容器set 】std::set 的全方位解析
    装载自知乎(虽然有AI辅助操作,但是确实写得好好):【C++STL容器set】std::set的全方位解析-知乎(zhihu.com)<imgsrc="https://pic3.zhimg.com/v2-cc8068b8931c7f65e9a89717e2ab404e_b.jpg"data-size="normal"data-rawwidth="1024"data-rawheight="1024......
  • 10_C# 中的 String 和 StringBuilder 的区别
    C#中的String和StringBuilder的区别1.String类String类表示不可变的字符串。一旦创建String对象,其内容就不能再被修改。对String对象进行任何修改操作都会返回一个新的String对象。示例:stringstr1="Hello";stringstr2=str1+"World!";Console.W......
  • 初中英语优秀范文100篇-096My views on robots entering the classroom-我对机器人进
    PDF格式公众号回复关键字:SHCZFW096记忆树1Withthedevelopmentoftechnology,ithasbecomepossibleforrobotstoentertheclassroom.翻译随着科技的发展,机器人进入课堂已成为可能。简化记忆课堂句子结构It"是形式主语,真正的主语是不定式短语forrobotsto......