WangFuJie Blog

路在脚下,心向远方

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是如何实现这些优点的。

Redis源码阅读 - 搭建redis调试环境

搭建redis调试环境

Redis源码阅读从比较早的redis1.0版本开始,低版本代码量少,易于进行打基础。为了一劳永逸,这里使用docker构建redis的调试镜像,并通过vscode远程调试。也可以根据文章中提供的Dockerfile自定义构建镜像进行redis调试。