Redis设计与实现
2022-03-28 17:11:48 14 举报
AI智能生成
登录查看完整内容
《Redis设计与实现》思维导图
作者其他创作
大纲/内容
定义
获取字符串的长度
缓冲区溢出
内存重分配次数
二进制安全
兼容部分C字符串
SDS与C字符串的区别
简单动态字符串(SDS)
链表(linkedList)
实现
哈希算法
解决键冲突
rehash
渐进式rehash
字典
跳跃表
跳跃表(skipList)
整数集合
压缩列表(zipList)
快速列表(quickList)
对象的类型与编码
字符串对象
列表对象
哈希对象
集合对象
有序集合对象
类型检查与命令多态
内存回收
对象共享
对象的空转时长
对象
数据结构与对象
过期键策略和内存淘汰机制
AOF RDB 复制 对过期键的处理
数据库事件通知和键通知
数据库
RDB文件的创建与载入
创建快照的办法
自动间隔性保存
RDB文件结构
RDB持久化
命令追加
文件写入
文件同步
AOF持久化的实现
AOF文件的载入与数据还原
AOF重写
AOF持久化
文件事件处理器构成和执行流程
IO多路复用程序的实现
连接应答处理器
命令请求处理器
命令回复处理器
文件事件处理器
文件事件
定时事件
周期性事件
分类
id
when
timeProc
组成
时间事件
事件调度与执行
事件
套字节描述符
名字
标志
输入缓冲区
命令与命令参数
命令的实现函数
输出缓冲区
身份验证
时间
客户端属性
普通客户端
LUA脚本客户端
AOF文件伪客户端
创建与关闭
客户端
发送命令请求
读取命令请求
查找命令
执行预备命令
调用命令的实现函数
执行后续操作
命令执行器
将命令回复发送给客户端
客户端接受并打印命令回复
命令的请求执行流程
更新服务器时间缓存
更新LRU时钟
更新服务器每秒执行命令的次数
更新服务器内存峰值记录
处理SIGTERM信号
管理客户端资源
管理数据库资源
执行被延迟的BGREWRITEAOF
检查持久化操作的运行状态
将AOF缓冲区的内容写入AOF文件
关闭异步客户端
增加cronloops计数器的值
serverCron函数
初始化服务器状态结构
载入配置项
初始化服务器数据结构
还原数据库状态
执行事件循环
初始化服务器
服务器
单机数据库的实现
从服务器连接主服务器实现步骤
复制偏移量
复制积压缓冲区
部分重同步的实现
服务器运行ID
PSYNC
复制的实现(搭建主从)
检测主从服务器的网络连接状态
辅助实现`min-slave`
测命令丢失
心跳检测
复制
Sentinel
启动节点
集群数据结构
建立集群
节点
记录节点的槽指派信息
传播节点的指派信息
记录集群所有槽的指派信息
CLUSTER ADDSLOTS命令的实现
槽指派
计算键属于哪个槽
判断槽是否由当前节点负责处理
MOVED错误
节点数据库的实现
在集群中执行命令
CLUSTER SETSLOT IMPORTING命令实现
CLUSTER SETSLOT MIGRSTING命令实现
ASK错误
ASK错误和MOVED两者的区别
重新分片
设置从节点
故障检测
故障转移
选举新的主节点
复制与故障转移
MEET
PING
PONG
FAIL
PUBLISH
消息
Gossip 协议
Redis 集群中的纪元(epoch)
集群
多机数据库的实现
订阅频道
退订频道
频道的订阅与退订
订阅模式
退订模式
模式的订阅与退订
将消息发给频道订阅着
将消息发给模式订阅着
发送消息
查看订阅消息
发布与订阅
watch命令
事务
Lua脚本
ALPHA
ASC和DESC
BY
ALPHA加BY
LIMIT
get
store
sort
排序
位数组的表示
GETBIT命令
SETBIT命令
带扩散操作的SETBIT命令
遍历算法
查表法
variable-precision SWAR算法
BITCOUNT的实现
二进制位数组
慢查询日志
监视器
独立功能的实现
Redis设计与实现
收藏
收藏
0 条评论
回复 删除
下一页