底层结构
- 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 交集
本文介绍了Redis中整数集合(intset)和哈希表(hashtable)的底层实现原理,以及它们在存储效率上的优势。重点讲解了set操作命令如sadd、srem等,并阐述了集合间操作如差集、并集和交集的使用场景。
1691

被折叠的 条评论
为什么被折叠?



