Home > Database > Mysql Tutorial > body text

redis启动流程

WBOY
Release: 2016-06-07 16:41:32
Original
1189 people have browsed it

1. 准备运行环境 * 设置oom handler,zmalloc分配内存失败时调用* 初始化随机种子,用于生成随机数* 将server参数初始化为默认值 * 创建命令与处理函数的映射表 2. 解析命令行参数、loadServerConfig()解析配置文件 * 配置文件会覆盖命令行指定的参数* 无效

1. 准备运行环境

<code>* 设置oom handler,zmalloc分配内存失败时调用
* 初始化随机种子,用于生成随机数
* 将server参数初始化为默认值  
* 创建命令与处理函数的映射表
</code>
Copy after login

2. 解析命令行参数、loadServerConfig()解析配置文件

<code>* 配置文件会覆盖命令行指定的参数
* 无效的配置项或者不合理的配置值会导致redis无法正常启动
</code>
Copy after login

3. initServer()初始化服务

<code>* 安装信号处理函数  
* 创建共享对象,redis预分配好常用的对象用于共享,以节省内存  
* 根据maxc lients配置调整max open files
*  创建全局db字典,每个db对应一个dict  
* 监听网络端口,安装事件处理器  
* 如果开启了aof,打开aof文件  
* 创建serverCron定时器
</code>
Copy after login

4. loadDataFromDisk()从rdb或aof文件加载数据

<code>* load数据出错(比如文件格式乱掉)等会导致redis不能正常启动
* loading的过程中,redis仍能处理请求,但大部分请求都会回复-LOADING错误
</code>
Copy after login

5. aeMain()开始事件循环,接收客户端请求

<code>监听文件描述符的事件处理函数初始化为acceptTcpHandler,新建立的连接的事件处理函数设置为readQueryFromClient,readQueryFromClient从网络连接上读取请求,解析出请求参数并处理。
</code>
Copy after login

The post redis启动流程 appeared first on Yun Notes.

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template