标签: 底层实现
Redis 数据结构与底层实现
Redis 对外暴露五种常用类型,但底层有多种编码(encoding)。根据数据规模自动在不同编码间转换,是它兼顾内存与性能的关键。 核心底层结构 SDS(简单动态字符串):相比 C 字符串记录长度、预分配空间,避免缓冲区溢出并支持二进制安全。 ziplist / listpack:连续内存的紧凑列表,节省空间,适合小数据量。 linkedlist:双向链表,元素多时替代 ziplist。 dict(字典):哈希表,使用链地址法解决冲突,渐进式 rehash 避免阻塞。 skiplist(跳表 …
Redis 对外暴露五种常用类型,但底层有多种编码(encoding)。根据数据规模自动在不同编码间转换,是它兼顾内存与性能的关键。 核心底层结构 SDS(简单动态字符串):相比 C 字符串记录长度、预分配空间,避免缓冲区溢出并支持二进制安全。 ziplist / listpack:连续内存的紧凑列表,节省空间,适合小数据量。 linkedlist:双向链表,元素多时替代 ziplist。 dict(字典):哈希表,使用链地址法解决冲突,渐进式 rehash 避免阻塞。 skiplist(跳表 …