WangFuJie Blog

路在脚下,心向远方

Redis源码阅读 - Redis数据结构整数集合(intset)

Redis数据结构整数集合(intset)

整数集合(intset)用于有序、无重复地保存多个整数值, 根据元素的值, 自动选择该用什么长度的整数类型来保存元素,它是按照从小到大的顺序排列的,是set类型的底层实现之一。

Redis源码阅读 - Redis数据结构跳表(skiplist)

Redis数据结构跳表(skiplist)

跳表(skiplist)是一种随机化的数据, 以有序的方式在层次化的链表中保存元素。Redis实现了跳表作为zset数据类型的底层索引实现,因此zset可以支持范围查询。本文我们将重点学习跳表结构的实现。

Redis源码阅读 - Redis数据结构字典(dict)

Redis数据结构字典(dict)

字典是一种抽象数据结构,由键值对(key-value pairs)组成,在Redis中的应用非常广泛。Redis使用拉链法解决哈希冲突问题,并且实现了渐进式rehash避免了传统rehash阻塞正常请求。

Redis源码阅读 - Redis数据结构双向链表(adlist)

Redis数据结构双向链表(adlist)

双向链表是一种通用的链式数据结构,Redis很多模块都有使用到。它的优点是操作前驱后继和头尾节点的时间复杂度都是O(1), 并且不需要连续的内存空间。同样它的缺点访问中间元素的时间复杂度为O(n),这点是不如列表的。

Redis源码阅读 - Redis数据结构动态字符串(SDS)

Redis数据结构动态字符串(SDS)

Redis自身实现了简单动态字符串,缩写SDS。它相比于C标准库有节省内存、二进制安全、性能高效等优点。本文从源码的角度来介绍SDS是如何实现这些优点的。