Redis 设计与实现(第二版)
介绍
前言
致谢
简介
第一部分:数据结构与对象
简单动态字符串
SDS 的定义
SDS 与 C 字符串的区别
SDS API
重点回顾
参考资料
链表
链表和链表节点的实现
链表和链表节点的 API
重点回顾
字典
字典的实现
哈希算法
解决键冲突
rehash
渐进式 rehash
字典 API
重点回顾
跳跃表
跳跃表的实现
跳跃表 API
重点回顾
整数集合
整数集合的实现
升级
升级的好处
降级
整数集合 API
重点回顾
压缩列表
压缩列表的构成
压缩列表节点的构成
连锁更新
压缩列表 API
重点回顾
对象
对象的类型与编码
字符串对象
列表对象
哈希对象
集合对象
有序集合对象
类型检查与命令多态
内存回收
对象共享
对象的空转时长
重点回顾
第二部分:单机数据库的实现
数据库
数据库键空间
重点回顾
RDB 持久化
RDB 文件结构
重点回顾
AOF 持久化
AOF 持久化的实现
重点回顾
事件
文件事件
重点回顾
参考资料
客户端
客户端属性
重点回顾
服务器
命令请求的执行过程
重点回顾
第三部分:多机数据库的实现
复制
旧版复制功能的实现
重点回顾
Sentinel
启动并初始化 Sentinel
重点回顾
参考资料
集群
节点
重点回顾
第四部分:独立功能的实现
发布与订阅
频道的订阅与退订
重点回顾
参考资料
事务
事务的实现
重点回顾
Lua 脚本
创建并修改 Lua 环境
重点回顾
排序
SORT <key> 命令的实现
重点回顾
二进制位数组
GETBIT 命令的实现
重点回顾
慢查询日志
慢查询记录的保存
慢查询日志的阅览和删除
添加新日志
重点回顾
监视器
成为监视器
向监视器发送命令信息
重点回顾
源码、相关资源和勘误
Redis 设计与实现(第二版)
第一部分:数据结构与对象
简单动态字符串
重点回顾
上一篇:
SDS API
下一篇:
参考资料
重点回顾
Redis 只会使用 C 字符串作为字面量, 在大多数情况下, Redis 使用 SDS (Simple Dynamic String,简单动态字符串)作为字符串表示。
比起 C 字符串, SDS 具有以下优点:
常数复杂度获取字符串长度。
杜绝缓冲区溢出。
减少修改字符串长度时所需的内存重分配次数。
二进制安全。
兼容部分 C 字符串函数。
上一篇:
SDS API
下一篇:
参考资料