本文将通过分析代码Redis的
启动过程。通过查看Redis的启动
脚本,它是已知的,Redis的启动始于redis.c.redis启动
方法主要可以分为以下几个
步骤:
1。初始化的redis
服务器的全局
配置 2。重置服务器
保存参数(
详细如下)和加载配置
文件 三.初始化服务器
4。加载数据库
5。启动
网络监控
首先,初始化的redis服务器的全局配置。这一步主要是初始化
设置基于Redis的静态价值的redis服务器配置。H,这是Redis服务器的
默认配置。如:
TCP端口,redis客户端的默认超时;
对Redis的默认数据库的数量;
参数设置的redis追加持久
模式;
默认值的各种数据结构
支持Redis的设置;
redis
内存交换相关的设置;
Redis Master Slave相关的配置;
Redis
命令表的初始化。
二、加载配置文件:
这一步是建立Redis服务器通过读取配置文件,并将覆盖在先前步骤中一些默认的设置。打开
下载的版本的源代码,我们可以看到,在其根
目录下的默认配置文件redis.conf。应该指出的是,如果配置文件没有指定当Redis开始,那么Redis服务器将不加载默认的配置文件启动时,默认的配置文件是不同的,在第一步中,全局默认配置为例,对Redis的数据存储
策略的附加模式的配置,在redis.conf设置:
一个更新9001 -------节省15分钟
保存30010中的10个更新——5分钟
节省6010000 - 1分钟更新6010000 - 1分钟。
最后一步中的默认默认配置是
正确的:
在一小时内节省60 * 60 - 1 - 1更新
保存300100中的100个更新——5分钟
节省6010000 - 1分钟更新6010000 - 1分钟。
所以当我们开始使用,如果默认配置不符合要求,我们需要指定要配置的配置文件。
三、初始化服务器:
初始化服务器在initserver做()方法和辅助方法进一步初始化服务器设置在过去的两个步骤的参数。
创建维护客户和奴隶的列表
在这一结构object.redisobject创建共享,有一个变量称为引用计数,这是用来
分享的Redis的对象是目前的strinbject Redis只支持共享。共享对象Redis有两个比喻:第一类:
操作中
经常使用的各种物品,如:Redis服务器Redis命令分隔符号 R这可以在海量数据的具体存储节省大量内存。此参数可用于指定多个二类共享对象被创建时,Redis是起步,和默认的参数是10000,即对stronbject值之间redis_shared_integers 0-9999。
创建一个酒吧/子频道
初始化网络监控eventloop,如eventloop,、事件、fileevent,等。
如果虚拟机被打开,虚拟内存相关的IO
线程初始化。
四,加载数据:
根据配置,redis加载数据源也不同。如果appendonly是在配置文件中设置(默认是没有),然后加载数据从appendfile,而恰恰相反,数据加载RedisDb。
从appendfile负荷数据:让我们appendfile的内容是什么一看,下面的记录是从appendfile:集9美元3美元仅仅olylakers。显然,appendfile节省各种,Redis服务器接收命令。然后从appendfile加载数据的redis服务器从appenfile读这些命令的记录,然后重新
执行这些命令。需要注意的是,如果虚拟机打开重要的掉期业务可能涉及appendfile加载数据的时候。
Loading data from redisdb: if appendonly is not opened, then you need to load data from DB file to memory, and the process is:
1。通过
处理select命令,选择db
2。然后从DB文件中读取键值和值
三.重点
检查的到期日,如果到期是跳过这个关键,如果没有过期,数据添加到相应的数据库字典
4。如果虚拟机被打开,来自db文件的负载数据也可能参与交换操作。
五、启动网络监控:
Redis的网络监控不使用libevent等,但它实现了一套简单的机会,事件驱动的API,特别是AE C.