Redis
文章平均质量分 90
一朝英雄拔剑起
又是苍生十年劫
展开
-
【深度解析】能容纳所有整数类型的神奇结构----Redis intset
文章目录1 整数集合intset概念2 整数集合intset的结构3 升级4 降级5 参考文献1 整数集合intset概念整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。整数集合(intset)是Redis用于保存整数值的集合抽象数据结构,它可以保存类型为int16_t、int32_t或者int64_t的整数值,并且保证集合中不会出现重复元素。2 整数集合intset的结构typedef st原创 2021-06-22 10:04:39 · 191 阅读 · 2 评论 -
【深度解析】Redis 字典dict 数据结构
文章目录1 什么是字典2 Redis 字典的特点3 Redis字典的结构3.1 哈希表节点3.2 哈希表3.3 字典结构4 哈希算法5 解决键冲突6 rehase7 哈希表的扩展与收缩8 渐进式rehash1 什么是字典字典,又称为符号表(symbol table)、关联数组(associative array)或映射(map),是一种用于保存键值对(key -value pair)的抽象数据结构。在字典中,一个键(key)可以和一个值(value)进行关联(或者说将键映射为值), 这些关联的键和值就原创 2021-06-20 13:11:43 · 479 阅读 · 1 评论 -
【深度解析】Redis 链表结构
文章目录1 Redis链表特点2 Redis链表结构2.1 双端链表节点2.2 双端链表结构2.3 双端链表迭代器3 部分API实现3.1 获取迭代器3.2 复制整个链表3.3 查找4 参考资料1 Redis链表特点链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点 来灵活地调整链表的长度。作为一种常用数据结构,链表内置在很多高级的编程语言里面,因为Redis使用的C语言并没有内置这种数据结构,所以Redis构建了自己的链表实现。 链表在Redis中的应用非常广泛,比如列表键原创 2021-06-19 10:55:34 · 388 阅读 · 0 评论 -
【深度解析】Redis中使用的字符串结构SDS
文章目录1 什么是SDS?2 SDS定义3 SDS和C字符串的区别3.1 常数复杂度获取字符串长度3.2 杜绝缓冲区溢出3.3 减少修改字符串时带来的内存重分配次数3.3.1 空间预分配3.3.2 惰性空间释放3.4 二进制安全3.5 兼容部分C字符串函数4 参考资料1 什么是SDS? SDS,即Simple Dynamic String,简单动态字符串。 Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字 符串),而是自己构建了一种名为简单动态字符串(sim.原创 2021-06-18 16:51:26 · 360 阅读 · 0 评论