《Redis设计与实现》阅读笔记
文章平均质量分 79
小马王_
用脑子思考
展开
-
Redis设实 - 04 跳跃表
《Redis设计与实现 黄建宏 著》第5章该书基于Redis2.9,即Redis3.0开发版编写跳跃表(skip list)一种有序数据结构,通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的支持平均O(logN)、最坏O(N)复杂度的节点查找可通过顺序性操作批量处理节点跳跃表数据结构typedef structz skiplist{原创 2017-08-14 17:32:43 · 508 阅读 · 0 评论 -
Redis设实 - 07 对象 上
《Redis设计与实现 黄建宏 著》第8章该书基于Redis2.9,即Redis3.0开发版编写Redis对象数据结构typedef struct redisObject{// 类型unsigned type:4;// 编码unsigned encoding:4;// 指向底层实现数据结构的指针void *ptr;//...}robj;typ原创 2017-08-15 15:33:29 · 324 阅读 · 0 评论 -
Redis设实 - 06 压缩列表
《Redis设计与实现 黄建宏 著》第7章该书基于Redis2.9,即Redis3.0开发版编写压缩列表为节约内存而开发由一系列特殊编码的连续内存块组成的顺序型(sequential)数据结构可包含任意多个节点(entry),每个节点可保存一个字节数组或一个整数值压缩列表节点1个压缩列表节点可保存1个字节数组或1个整数值字节数组长度有3种:·长度原创 2017-08-15 10:57:24 · 324 阅读 · 0 评论 -
Redis设实 - 05 整数集合
《Redis设计与实现 黄建宏 著》第6章该书基于Redis2.9,即Redis3.0开发版编写整数集合(intset)用于保存整数值的集合抽象数据结构可保存类型为int16_t、int32_t、int64_t的整数值集合中不会出现重复元素整数集合数据结构typedef struct intset{// 编码方式uint32_t encoding原创 2017-08-14 17:58:26 · 285 阅读 · 0 评论 -
Redis设实 - 02 链表
《Redis设计与实现 黄建宏 著》第3章该书基于Redis2.9,即Redis3.0开发版编写链表结构typedef struct list{// 表头节点listNode *head;// 表尾节点listNode *tail;// 节点数量unsigned long len;// 节点值复制函数void *(*dup)(void *ptr)原创 2017-08-14 15:02:57 · 341 阅读 · 0 评论 -
Redis设实 - 03 字典
《Redis设计与实现 黄建宏 著》第3章该书基于Redis2.9,即Redis3.0开发版编写字典一种用于保存键值对(key-value pair)的抽象数据结构键唯一又称符号表(symbol table)、关联数组(associative array)或映射(map)Redis数据库底层使用字典实现字典底层使用哈希表实现,哈希表节点保存键值对字典原创 2017-08-14 16:11:55 · 420 阅读 · 0 评论 -
Redis设实 - 13 事件 下 时间事件
《Redis设计与实现 黄建宏 著》第11章该书基于Redis2.9,即Redis3.0开发版编写时间事件分2类:·定时事件指定时间后执行一次事件处理器返回AE_NOMORE,该事件达到一次后被删除·周期事件每隔指定时间执行一次事件处理器返回非AE_NOMORE整数值,根据该值更新when属性,让该事件在一段时间后再次到达时间事件3个属性原创 2017-08-18 11:48:18 · 680 阅读 · 0 评论 -
Redis设实 - 12 事件 上 文件事件
《Redis设计与实现 黄建宏 著》第11章该书基于Redis2.9,即Redis3.0开发版编写两类事件文件事件(file event)Redis服务器通过套接字与客户端(或其他Redis服务器)连接,文件事件是服务器对套接字操作的抽象服务器与客户端(或其他Redis服务器)通信产生文件事件,服务器通过监听并处理这些事件完成一系列网络通信操作时间事件(time e原创 2017-08-17 19:00:24 · 640 阅读 · 0 评论 -
《Redis设计与实现 黄建宏 著》阅读笔记目录(持续更新)
《Redis设计与实现 黄建宏 著》第3章该书基于Redis2.9,即Redis3.0开发版编写目录:第一部分 数据结构与对象01 简单动态字符串02 链表03 字典未完待续......原创 2017-08-14 16:17:19 · 1988 阅读 · 1 评论 -
Redis设实 - 11 AOF持久化
《Redis设计与实现 黄建宏 著》第11章该书基于Redis2.9,即Redis3.0开发版编写AOF(Append Only File)持久化通过保存Redis服务器执行的写命令记录数据库状态AOF持久化三个步骤:命令追加(append)服务器执行完一个写命令后,该命令以协议格式追加到服务器状态aof_buf缓冲区:typedef struct redisSer原创 2017-08-17 16:59:30 · 467 阅读 · 0 评论 -
Redis设实 - 10 RDB持久化
《Redis设计与实现 黄建宏 著》第10章该书基于Redis2.9,即Redis3.0开发版编写服务器中的非空数据库及其键值对统称为数据库状态持久化操作可将数据库状态保存到文件RDB持久化可手动执行,也可根据服务器配置选项定期执行2个生成RDB文件命令SAVE,阻塞Redis服务器进程,直到RDB文件创建完毕为止,期间不处理任何命令请求BGSAVE,派原创 2017-08-16 16:06:49 · 393 阅读 · 0 评论 -
Redis设实 - 09 数据库
《Redis设计与实现 黄建宏 著》第9章该书基于Redis2.9,即Redis3.0开发版编写1. 数据结构Redis服务器数据结构typedef struct redisServer{// ...// 一个数组,保存服务器中的所有数据库redisDb *db;// 服务器的数据库数量,默认为16,可通过服务器配置中database选项修改int db原创 2017-08-16 11:46:02 · 400 阅读 · 0 评论 -
Redis设实 - 08 对象 下
《Redis设计与实现 黄建宏 著》第8章该书基于Redis2.9,即Redis3.0开发版编写Redis命令可分两种一种命令可对任何类型键执行,例DEL、EXPIRE、RENAME、TYPE、OBJECT另一种命令只对特定类型键执行类型检查通过redisObject.type属性实现,若命令与type要求不一致,则返回错误命令多态通过redisObject原创 2017-08-15 16:54:22 · 371 阅读 · 0 评论