《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 · 662 阅读 · 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 · 576 阅读 · 0 评论 -
Redis设实 - 10 RDB持久化
《Redis设计与实现 黄建宏 著》第10章 该书基于Redis2.9,即Redis3.0开发版编写 服务器中的非空数据库及其键值对统称为数据库状态 持久化操作可将数据库状态保存到文件 RDB持久化可手动执行,也可根据服务器配置选项定期执行 2个生成RDB文件命令 SAVE,阻塞Redis服务器进程,直到RDB文件创建完毕为止,期间不处理任何命令请求 BGSAVE,派原创 2017-08-16 16:06:49 · 537 阅读 · 0 评论 -
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 · 648 阅读 · 0 评论 -
《Redis设计与实现 黄建宏 著》阅读笔记目录(持续更新)
《Redis设计与实现 黄建宏 著》第3章 该书基于Redis2.9,即Redis3.0开发版编写 目录: 第一部分 数据结构与对象 01 简单动态字符串 02 链表 03 字典 未完待续......原创 2017-08-14 16:17:19 · 2164 阅读 · 1 评论 -
Redis设实 - 12 事件 上 文件事件
《Redis设计与实现 黄建宏 著》第11章 该书基于Redis2.9,即Redis3.0开发版编写 两类事件 文件事件(file event) Redis服务器通过套接字与客户端(或其他Redis服务器)连接,文件事件是服务器对套接字操作的抽象 服务器与客户端(或其他Redis服务器)通信产生文件事件,服务器通过监听并处理这些事件完成一系列网络通信操作 时间事件(time e原创 2017-08-17 19:00:24 · 840 阅读 · 0 评论 -
Redis设实 - 13 事件 下 时间事件
《Redis设计与实现 黄建宏 著》第11章 该书基于Redis2.9,即Redis3.0开发版编写 时间事件 分2类: ·定时事件 指定时间后执行一次 事件处理器返回AE_NOMORE,该事件达到一次后被删除 ·周期事件 每隔指定时间执行一次 事件处理器返回非AE_NOMORE整数值,根据该值更新when属性,让该事件在一段时间后再次到达 时间事件3个属性原创 2017-08-18 11:48:18 · 823 阅读 · 0 评论 -
Redis设实 - 03 字典
《Redis设计与实现 黄建宏 著》第3章 该书基于Redis2.9,即Redis3.0开发版编写 字典 一种用于保存键值对(key-value pair)的抽象数据结构 键唯一 又称符号表(symbol table)、关联数组(associative array)或映射(map) Redis数据库底层使用字典实现 字典底层使用哈希表实现,哈希表节点保存键值对 字典原创 2017-08-14 16:11:55 · 571 阅读 · 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 · 495 阅读 · 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 · 418 阅读 · 0 评论 -
Redis设实 - 06 压缩列表
《Redis设计与实现 黄建宏 著》第7章 该书基于Redis2.9,即Redis3.0开发版编写 压缩列表 为节约内存而开发 由一系列特殊编码的连续内存块组成的顺序型(sequential)数据结构 可包含任意多个节点(entry),每个节点可保存一个字节数组或一个整数值 压缩列表节点 1个压缩列表节点可保存1个字节数组或1个整数值 字节数组长度有3种: ·长度原创 2017-08-15 10:57:24 · 470 阅读 · 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 · 486 阅读 · 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 · 525 阅读 · 0 评论
分享