本文主要是介绍集合对象 - 《Redis设计与实现》读书笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
集合对象的编码可以是intset或者hashtable
- intset编码的集合对象使用整数集合作为底层实现
集合对象包含的所有元素都被保存在整数集合里面
- hashtable编码的集合对象使用字典作为底层实现
字典的每个键都是一个字符串对象,每个字符串对象包含了一个集合元素
字典的每个值都是NULL
编码转换
当集合对象可以【同时满足】以下条件时,集合对象的编码使用intset,否则使用hashtable编码,
- 集合对象保存的所有元素都是整数值
- 集合对象保存的元素的元素数量不超过512个
编码的转换两个条件的上限值可通过配置文件中的set-max-intset-entries选项进行调整,
源码阅读
- 文件:src/t_set.c
这篇关于集合对象 - 《Redis设计与实现》读书笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!