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

这一节和下一节将介绍Redis中对C语言字符串的封装

在Redis中, 这种字符串被称谓SDS, 也就是简单(s)动态(d)字符串(s)

也就是说, 从今天开始, 将逐步先介绍Redis底层的数据结构实现

视频下载地址:http://pan.baidu.com/s/1jIHElyI

时间: 2024-11-06 19:09:13

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

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的数据结构中, 截止字典, 已经把设计组织最清晰的那部分讲完了. 接下来的数据结构部分是互相纠缠的. 我需要时间去分析一下. 视频下载地址

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

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

小白的Redis学习(一)-SDS简单动态字符串

本文为读<Redis设计与实现>的记录.该书以Redis2.9讲解Redis相关内容.请注意版本差异. Redis使用C语言实现,他对C语言中的char类型数据进行封装,构建了一种简单动态字符串(以下简称SDS),该字符串的结构如下 struct sdshdr{ //记录buf数组中已使用字节的数量 //获取字符串的长度时,就是直接返回的这个字段的值 int len; //记录buf数组中未使用字节的数量 int free; //字节数组,用于保存字符串 char buf[]; } SDS遵循

Redis数据结构(一)简单动态字符串

Redis的字符串采用的是自定义的struct,名字叫做简单动态字符串(simple dynamic string,SDS). 结构如下: struct sdshdr{ int len; int free; char buf[]; }; 采用如此结构的好处是: [1]获取length的时候复杂度为O(1),不需要O(n): [2]动态分配空间,避免缓冲区溢出,避免每次修改或者append都重新分配: [3]二进制安全: 关于第一点显而易见,第二点,为了减少修改字符串带来的内存重分配次数,redi

自已动手写Redis【简单动态字符串序列一】

第一章 简单动态字符串 2.1 引言 字符串String是程序设计中最为常见的一种数据结构,也是最为重要的一种数据结构,Hello World!这个最为精典的程序,是绝大部份人学习一种程序设计语言的入门程序,在这个最为精典的入门程序中,Hello World!就是字符串类型,字符串可以用于软件中信息的提醒.保存等,Redis中key都是String类型的,因此了解String类型对于我们了解Redis以及动手写Redis都是非常有益的. 2.2 字符串基本概念 以上是我们最为熟悉的Hello W