- 博客(3)
- 收藏
- 关注
原创 Redis底层详解(六) 跳跃表
一、跳跃表概述 跳跃表是有序集合的底层实现之一。 1、跳跃表结点 跳跃表的结点 zskiplistNode 定义在 server.h 中,定义如下:typedef struct zskiplistNode { robj *obj; /* a */ double scor...
2018-12-18 23:55:52 294551 2
原创 Redis底层详解(五) 压缩列表
一、压缩列表概述 压缩列表是一种编码过的“链表”旨在实现高效的内存管理。它可以存储整数和字符串,整数以小端序存储,字符串则以字节数组存储。压缩列表的内存存储结构如下图所示: 其中zlbytes、zltail、zllen 是 压缩列表头( ziplist header ),entry1 到 entryN 是列表的结点部分,zlen 是结尾标记。二、压缩列表...
2018-12-12 08:04:04 300188 6
原创 Redis底层详解(四) 整数集合
一、集合概述 对于集合,STL 的 set 相信大家都不陌生,它的底层实现是红黑树。无论插入、删除、查找都是 O(log n) 的时间复杂度。当然,如果用哈希表来实现集合,插入、删除、查找都可以达到 O(1)。那么为什么集合要用红黑树和没有用哈希表呢?我想,最大的可能是基于集合自身的特性,集合有它特有的操作:求交、求并、求差。这三个操作对于哈希表来说都是 O(n) 的。基于这...
2018-12-03 07:42:57 315906
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人