《Redis设计与实现》笔记7
更新日期:
文章目录
单机数据库实现——初始化服务器
阶段:
- 初始化服务器状态结构initServerConfig
- 载入服务器配置数据 initServerConfig
- 初始化服务器数据结构 initServer
- 还原数据库状态RDB或者AOF,如果服务器的AOF持久化开关没打开则使用RDB进行还原,反之使用AOF还原。
- 执行事件循环
initServerConfig函数完成工作:
- 设置服务器运行id
- 设置服务器默认运行频率
- 设置服务器默认配置文件路径
- 设置服务器的运行结构
- 设置服务器默认端口号
- 设置服务器默认RDB持久化条件和AOF持久化条件
- 设置服务器的LRU时钟
- 创建命令表
载入配置选项:
用户可以通过:
1、给定配置参数
2、给定配置文件
来修改服务器的默认配置
initServer初始化服务器数据结构,对以下数据结构分配内存
- server.clients链表
- server.db数组
- 用来保存频道订阅信息的server.pubsub_channels字典,以及用于保存模式订阅信息的server.pubsub_patterns链表
- 用于执行lua脚本的lua环境server.lua
- 用于保存慢查询日志的server.slowlog属性
- 为服务器设置进程信号处理器
- 创建共享对象:创建0-9999的整数共享对象、“OK”、“ERR”回复的字符串对象
…