WangFuJie Blog

路在脚下,心向远方

Redis源码阅读 - Redis数据结构紧凑列表(listpack)

Redis数据结构紧凑列表(listpack)

listpack 也叫紧凑列表,它的特点就是用一块连续的内存空间来紧凑地保存数据,同时为了节省内存空间,listpack 列表项使用了多种编码方式,来表示不同长度的数据,这些数据包括整数和字符串。它是ziplist的替代品,解决了ziplist的级联更新问题。

Redis源码阅读 - Redis数据结构压缩链表(ziplist)

Redis数据结构压缩链表(ziplist)

ziplist 是由一系列特殊编码的内存块构成的列表,可以保存字符数组或整数值。它根据字符长度或者整数大小使用不同的编码类型,用于节约内存空间。添加和删除 ziplist 节点有可能会引起连锁更新。ziplist是在最新版本已经废弃的结构,同样废弃的还有zipmap。代码中依然保留是为了加载低版本RDB时的兼容性。

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阻塞正常请求。