这里是文章模块栏目内容页
redis启动代码分析(redis 启动)

导读:本文主要分析Redis的启动代码,从main函数开始,一步步分析各个函数的作用,让读者了解Redis的启动过程。

1. main函数:main函数是Redis的入口,它会调用redisServer,将Redis的服务器启动。

2. redisServer函数:redisServer函数会根据传入的参数来决定Redis的配置,并调用initServer函数,初始化Redis的服务器。

3. initServer函数:initServer函数会调用createPidFile,创建pid文件;调用initNetworking,初始化网络;调用initSignalHandlers,初始化信号处理;调用aofRewriteBufferReset,重置AOF重写缓冲区;调用resetServerStats,重置服务器状态;调用loadDataFromDisk,从磁盘加载数据;调用rdbSaveBackground,后台执行RDB保存;调用replicationCron,复制定时任务;调用cron,定时任务;调用updateDictResizePolicy,更新字典调整策略;调用moduleInitModulesSystem,初始化模块系统;调用clusterInit,初始化集群;调用slowlogInit,初始化慢日志;调用latencyMonitorInit,初始化延迟监控;调用bioInit,初始化BIO;调用luaCron,Lua定时任务;调用setTimeOfDay,设置时间;调用redisAsciiArt,显示ASCII图形;调用redisLog,记录日志;调用redisSetProcTitle,设置进程标题;调用createSharedObjects,创建共享对象;调用moduleLoadFromQueue,从队列中加载模块;调用listenToPort,监听端口;调用clusterStart,启动集群;调用startLuaPersistentScripts,启动Lua持久脚本;调用redisServerCron,Redis服务器定时任务;调用pubsubInit,初始化发布/订阅;调用initSentinelConfig,初始化哨兵配置;调用sentinelTimer,哨兵定时器;调用sentinelHandleConfiguration,哨兵处理配置;调用loadServerConfig,加载服务器配置。

4. 其他函数:上述函数中,还会调用其他更底层的函数,如createPidFile会调用writePidFile,initNetworking会调用openListenSocket,initSignalHandlers会调用setupS