redis set的实现 |
Set集合
整数集合
intset
1.创建对象
1.1初始化结构体
2.查找value值
2.1.编码范围值的过滤
2.2二分查找
3.删除value值
3.1查找位置
3.2移动数据memmove
3.3缩小内存分配resize,realloc
4.修改value值
4.1查找值所在位置
4.2修改值
5.添加value值
5.1.查找value值
5.2.升级编码
2.1插入value值
5.3 集合太大升级为hashtable
6.工具
1.依据value值,获取编码
2.大小端转换
3.内存值转换为实际值
4.设置特定位置上的值,编码后
hashtable
1.使用条件
1.1 存在非整数值
2.2 整数集合大小超过规定
2.字典实现
2.1 查找
2.2增加
2.3删除
2.4 修改
intset升级到Hashtable
1.非整数内容
2.整数长度超过阈值
hashtable
查找
增加
删除
修改
查找
增加
删除
修改
迭代器
集合大小
集合交集