redis自学(10)Set
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,可修改但不建议太大,影响查询性能。
内存结构变化:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话