[redis] set数据结构

本文介绍了Redis中Set数据类型及其内部实现之一Intset的特点。Intset作为一种优化内存使用的有序整数集合,当集合内元素数量小于配置参数set-max-intset-entries时会被采用。文章还详细解释了Intset的数据结构定义、存储方式及查询机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、描述

redis的一个类型set(集合)


二、redis其内部实现

1:hashmap(hash table)散列表实现,key=value,  value=null即可,散列表相关链接

2:intset-可以理解为正数有序数组


三、intset的数据结构定义


contents:字节数组,其可以有16bit,32bit,64bit编码成整数的方式

encoding:INTSET_ENC_INT16,INTSET_ENC_INT32,INTSET_ENC_INT64


四、redis使用方式

1.contents作为整数数组来存储,并且其保证有序

2.因为contents为有序,并且contents的编码格式由encoding统一,故查询采取二分查找


五、配置参数控制

set-max-intset-entries,指明整数最大不超过该值时,使用intset类型进行存储,以节省内存的消耗




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值