14 服务器

14.2 serverCron函数

默认每隔100ms执行一次,负责关联服务器资源维持运转。

14.2.1 更新服务器时间缓存

redis服务中有不少功能需要获取系统的当前时间,都需要执行系统调用,为了减少,而使用近似的100ms间隔获取的时间作为缓存!所以不是高精度的。

对于那些需要高精度的场景还是会执行系统调用。

  • 不需要高精度:日志打印、LRU时间、持久任务执行
  • 需要高精度:键过期时间、慢查询日志。

14.2.3 统计命令执行次数

14.2.4 内存峰值记录

14.2.5 处理SIGTERM信号

收到SIGTERM信号关闭服务器,要进行持久化。

14.2.6 管理客户资源

每次执行都会调用clientsCron对一些client进行检查

  • 连接超时,释放
  • 输入缓冲区检查

14.2.7 管理数据库资源

每次执行调用databaseCron对一些数据库检查。

  • 删除过期键
  • 字典收缩

14.3 初始化服务器

14.3.1 初始化服务器状态结构

  1. struct redisServer结构

    1

  2. 初始server变量入口:initServerConfig