对Redis服务器的启动过程分析

对Redis服务器的启动过程分析
本文将通过分析代码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.
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部