redis启动流程
2016-12-29 10:51:39 0 举报
登录查看完整内容
Redis启动流程主要包括以下几个步骤: 1. 初始化服务器配置,包括端口、日志文件路径等。 2. 创建并初始化数据结构,如字典、列表、哈希表等。 3. 加载持久化文件,如果存在的话。 4. 建立事件循环,处理客户端请求。 5. 注册各种命令的处理函数。 6. 启动子进程,用于处理后台任务,如AOF持久化、RDB快照等。 7. 监听客户端连接,开始接受请求。 在这个过程中,Redis会使用多线程模型来提高性能,同时通过内存数据结构和持久化机制来实现数据的高效存储和快速访问。
作者其他创作
大纲/内容
处理文件事件
是
redis.c/loadServerConfig
主从复制时序图
server cron
初始化server
读取配置文件
是否存在master slave列表中
事件流程
是否存子进程保存RDB
Config file
保存客户端的list保存slave的list创建共享对象
否
accept hanlder
执行时间事件
建立连接
返回
initialize
configure
增量RDB
PONG
关闭服务器,删除事件 redis./aeDeleteEventLoop
redis.c/initServerConfig
time event
ae.c/aeCreateEventLoop
启动服务器循环/不停的循环redis.c/aeMain
Redis Server
global server state
redis.c/initServer
执行文件事件
config.c/loadServerConfigFromString
Master
是否其他客户端等待这次RDB
SYNC
设置事件执行前要运行的函数redis.c/aeSetBeforeSleepProc
添加到列表,等待RDB结束,进入发送状态
Slave
Read
redis.h/redisServer
底层实现获取就绪事件
RDB
event loop
PING
1、共享对象包括常用的字符串(ok)2、共享的数字对象 10000
与当前时间比较
无事件执行
register
create
等待下次RDB
I/O event
当不指定配置文件,直接初始化默认值
1、Linux 使用epoll2、BSD上面使用kqueue3、其他选择select
初始化网络,tcp
创建cron定时器,并制定回调函数
SYNCmaster_runid 和 offset
是否处理时间事件
获取最近一次到达的时间事件
确定可以执行的时间事件
0 条评论
回复 删除
下一页