Redis 设计与实现读书笔记一 Redis字符串

1 Redis 是C语言实现的

2 C字符串是 /0 结束的字符数组

3 Redis具体的动态字符串实现

/*
 * 保存字符串对象的结构
 */
struct sdshdr {

    // buf 中已占用空间的长度
    int len;

    // buf 中剩余可用空间的长度
    int free;

    // 数据空间
    char buf[];
};
sdshdr
free 0
len 5
buf

--->

‘R‘ ‘e‘ ‘d‘ ‘i‘ ‘s‘ ‘/0‘

4 感觉更像 Java 中的 StringBuffer 的设计

时间: 2024-08-01 22:27:14

Redis 设计与实现读书笔记一 Redis字符串的相关文章

Redis设计与实现读书笔记(一) SDS

作为redis最基础的底层数据结构之一,SDS提供了许多C风格字符串所不具备的功能,为之后redis内存管理提供了许多方便.它们分别是: 二进制安全 减少字符串长度获取时间复杂度 杜绝字符串溢出 减少内存分配次数 兼容部分C语言函数 下面将简要阐述SDS基础结构,并介绍这些功能相应的实现细节. SDS字符类型定义非常简单,以redis3.0.7为例: typedef char *sds; struct sdshdr { unsigned int len; //定义当前字符串长度(不包含'\0')

Linux内核设计与实现 读书笔记 转

Linux内核设计与实现  读书笔记: http://www.cnblogs.com/wang_yb/tag/linux-kernel/ <深入理解LINUX内存管理> http://blog.csdn.net/yrj/article/category/718110 Linux内存管理和性能学习笔记(一) :内存测量与堆内存 第一篇 内存的测量 2.1. 系统当前可用内存 # cat /proc/meminfoMemTotal:        8063544 kBMemFree:       

Linux内核设计与实现读书笔记——第三章

Linux内核设计与实现读书笔记——第三章 进程管理 20135111李光豫 3.1进程 1.进程即处于执行期的程序,并不局限于一个可执行的代码,是处于执行期程序以及其相关资源的总称. 2.Linux系统中,对于进程和线程并没有明显的区分,线程是一种特殊的进程. 3.Linux系统中,常用fork()进程创建子进程.调用fork()进程的成之为其子进程的父进程. 4.fork()继承实际上由clone()系统调用实现.最后通过exit()退出执行. 3.2任务描述符及任务结构 1.任务队列实质上

【读书笔记】Redis实战 中文.pdf

/Users/baidu/Documents/Data/Interview/存储-Nosql-Redis-消息队列/Redis实战 中文 先看第二章 数据类型及操作 Redis 的作者 antirez 曾笑称 Redis 为一个数据结构服务器(data structures server),我认为这 是一个非常准确的表述,Redis 的所有功能就是将数据以其固有的几种结构来保存,并提供 给用户操作这几种结构的接口. 一些操作:set, get, setnx, setex, setrange $

《Redis in action》读书笔记

https://www.gitbook.io/book/abcfy2/redis-in-action-reading-notes 最近在学习redis,正在看这本书,以笔记的形式记录下这本书,方便以后翻阅. 这本书介绍很不错,入门很值得参考,图文并茂解说redis的存储数据类型,很容易理解. 其中范例代码使用python编写,对熟悉python的用户很容易上手. 每章记录一下几个要点. 源码托管在github: https://github.com/abcfy2/redis-in-action-

《点石成金-访客至上的web和移动可用性设计秘籍》读书笔记

简介 作者Steve Krug,惯例先去了解一下本书的作者,发现书中介绍的并不多,百度一下后发现这本书比作者出名.好吧,百度就是这样子,作者自称web可用性咨询师,手上这本书是第三版再版,第一版2000年出版,2013年出版第三版,最大的变化大概是综合啦,原来凉拌是网站的可用性,这次是web和mobile.作者书中说,互联网时代,13年就像100年那么久,想想我们的cpu和手机这3年的更替,何况现在都16年啦.我想这本书之所以称为互联网必读书之一大概是因为它定义啦许多“本该如此”的原则问题,就是

《css设计指南》 读书笔记 一

<css设计指南>这本书是一个大神同学介绍给我的,据说覆盖了几乎所有前端面试的有关css的知识点,所以赶紧买来看看.( ps:这本书貌似绝版了,可以上淘宝买复印本,也可直接看电子书. ) 闭合标签,自闭合标签. html5中,将忽略所有自闭合标签最后的 / .可是建议在最后仍然加上  空格加/ 以规范格式. 所有img标签都需要加上alt属性. ps:视障用户使用的屏幕阅读器会读出图片的alt属性. 行内.块级标签.  块级: h1~h6, p, ol/ul, li, blockquote .

《设计心理学》读书笔记

<设计心理学>,英文原名为<The design of everyday things>,尽管书中确实提到了一些认知心理学和行为心理学中的概念,并且其作者--诺曼博士--也从事过心理学研究,但是对于书名是否应该被翻译为设计心理学,却依然是一个备受争议的话题. 回归书的内容本身,作者强调的是,日常物品的设计,应以易于使用为重.一款产品设计出来,最终是要落到用户手里的,其与用户的交互过程是否顺畅,直接决定了这款产品设计的成功与否.而针对目前设计界过分崇尚外观美学的现实,书中则多次用&q

C++——设计与演化——读书笔记

<<c++设计与演化>>1.c++的保护模式来自于访问权限许可和转让的概念; 初始化和赋值的区分来自于转让能力的思考; c++的const概念是从读写保护机制中演化出来. 2.BCPL注释: CPL(Combined Programming language,组合编程语言):CPL是一种在ALGOL60基础上更接近硬件的一种语言.CPL规模大,实现困难. BCPL(Basic Combined Programming language,基本的组合编程语言):BCPL是对CPL进行简