Redis2.6源代码走读第007课:压缩列表01

压缩列表本身并不复杂, 但是它的实现很繁琐

这几天身体与灵魂均被掏空, 可能需要停更几天。

这一讲只讲了压缩列表本身是什么, 以及它的原理, 没有讲具体实现。

视频下载地址

时间: 2024-10-16 07:35:40

Redis2.6源代码走读第007课:压缩列表01的相关文章

Redis2.6源代码走读第007课:压缩列表02

身体被掏空了一星期, 前天终于挣扎着继续做这个代码走读 不得不说, 压缩列表的实现复杂程度还是超出了我的预计 破天荒的第一次, 我必须手动上注释, 才能防止自己迷失在代码里面. 今天还没有录制视频, 最近一直在做公司的事, 时间也比较紧, 所以今天只是把我经过注释的压缩列表部分的代码贴出来, 同时给出一个阅读建议 在学习压缩列表的过程中, 我也参考了黄健宏先生对Redis2.6源代码的注释, 发现了黄先生注释中的一个错误. 如下: unsigned char *ziplistFind(unsig

Redis2.6源代码走读第004课:字典的实现01

这是Redis中我们碰到的第一个比较复杂的数据结构 字典部分预计共分三部分 第一部分, 也就是今天的视频, 是一个开场, 用手机录的, 把我自己对Redis中字典的设计逻辑给大家讲一讲 后两部分则才是真正的代码走读, 在代码层面细说字典的实现 今天的视频比较大, 时间却比较短..并且录到最后一部分的时候手机内存满了. 总共两个视频文件, 第二个视频文件只有几十秒. 大家凑合看吧 视频下载地址

Redis2.6源代码走读第004课:字典的实现02

这一课从代码层面上讲了字典的具体实现 并讲解了字典的创建, 结点的插入, 以及字典扩容再散列的实现 视频下载地址

Redis2.6源代码走读第004课:字典的实现03

字典中其它API的实现.. 下一讲可能要等几天, 或许不用等, 取决于我的工作效率与热情. 因为在Redis的数据结构中, 截止字典, 已经把设计组织最清晰的那部分讲完了. 接下来的数据结构部分是互相纠缠的. 我需要时间去分析一下. 视频下载地址

Redis2.6源代码走读第002课:简单动态字符串01

这一节和下一节将介绍Redis中对C语言字符串的封装 在Redis中, 这种字符串被称谓SDS, 也就是简单(s)动态(d)字符串(s) 也就是说, 从今天开始, 将逐步先介绍Redis底层的数据结构实现 视频下载地址:http://pan.baidu.com/s/1jIHElyI

第七课——简单动态字符串、链表、字典、压缩列表

第七课时作业 静哥 by 2016.4.5~2016.4.10   [作业描述] 1.解释redis数据库是怎么扩容的? 2.用几句话描述sds结构和压缩列表 [作业-1:解释redis数据库是怎么扩容的] Redis数据库是使用字典作为底层实现的,对数据库的增删改查操作也是构建在对字典的操作之上.因此,redis数据库的扩容本质上就是字典的扩容. Redis数据库是使用字典作为底层实现的:而字典使用哈希表作为底层实现:哈希表则可以由多个哈希表节点构成:哈希表节点里保存字典中的一个键值对. 对哈

Redis压缩列表原理与应用分析

摘要 Redis是一款著名的key-value内存数据库软件,同时也是一款卓越的数据结构服务软件.它支持字符串.列表.哈希表.集合.有序集合五种数据结构类型,同时每种数据结构类型针对不同的应用场景又支持不同的编码方式.这篇文章主要介绍压缩列表编码,在理解压缩列表编码原理的基础上介绍Redis对压缩列表的应用,最后再对Redis压缩列表应用进行分析. 摘要 Redis是一款著名的key-value内存数据库软件,同时也是一款卓越的数据结构服务软件.它支持字符串.列表.哈希表.集合.有序集合五种数据

跳跃表,整数,压缩列表

跳跃表事一种有序的结构,是有序集合键的底层实现 typedef struct zskiplistNode { // 后退指针 struct zskiplistNode *backward; // 分值 double score; // 成员对象 robj *obj; // 层 struct zskiplistLevel { // 前进指针 struct zskiplistNode *forward; // 跨度 unsigned int span; } level[]; } zskiplistN

学习笔记-Redis设计与实现-压缩列表

压缩列表(ziplist)是列表键和哈希键的底层实现之一. 7.1 压缩列表的构成 压缩列表是Redis为了节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型(sequential)数据结构.一个压缩列表可以包含任意多个节点(entry),每个节点可以保存数组或者一个整数值. 7.2 压缩列表节点的构成 每个压缩列表节点可以保存一个字节数组或者一个整数值. 每个压缩列表节点都由previous_entry_length.encoding.content三个部分组成. 7.2.1 pre