文章目录
  1. 1. 单机数据库实现——初始化服务器

单机数据库实现——初始化服务器

阶段:

  • 初始化服务器状态结构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”回复的字符串对象
文章目录
  1. 1. 单机数据库实现——初始化服务器