当前位置: 首页 > news >正文

如何运用网站做推广建立网站一般要多少钱

如何运用网站做推广,建立网站一般要多少钱,wordpress 提前8小时,dw如何在网站做弹窗初始化服务器 一个Redis服务器从启动到能够接受客户端的命令请求,需要经过一系列的初始化和设置过程,比如初始化服务器状态,接受用户指定的服务器配置,创建相应的数据结构和网络连接等等 初始化服务器状态结构 初始化服务器的第…

初始化服务器

一个Redis服务器从启动到能够接受客户端的命令请求,需要经过一系列的初始化和设置过程,比如初始化服务器状态,接受用户指定的服务器配置,创建相应的数据结构和网络连接等等

初始化服务器状态结构

初始化服务器的第一步就是创建一个struct redisServer类型的实例变量server作为服务器的状态,并为结构中的各个属性设置默认值。初始化server变量的工作由redis.c/initServerConfig函数完成,

void initServerConfig(void) {// 设置服务器的运行idgetRandomHexChars(seerver.runid, REDSI_RUN_ID_SIZE);// 为运行id加上结尾字符server.runid[REDIS_RUN_ID_SIZE] = '\0';// 设置默认配置文件路径server.configfile = NULL;// 设置默认服务器频率server.hz = REDIS_DEFAULT_HZ;// 设置服务器的运行架构server.arch_bits = (sizeof(long) == 8) ? 64 :32;// 设置默认服务器端口号server.port = REDIS_SERVERPORT;// ...
}

以下是initServerConfig函数完成的主要工作:

  • 1.设置服务器的运行ID
  • 2.设置服务器的默认运行频率
  • 3.设置服务器的默认配置文件路径
  • 4.设置服务器的运行结构
  • 5.设置服务器的默认端口号
  • 6.设置服务器的默认RDB持久化条件和AOF持久化条件
  • 7.初始化服务器的LRU时钟
  • 8.创建命令表
    initServerConfig函数设置的服务器状态属性基本都是一些整数、浮点数、或者字符串属性,除了命令表之外,initServerConfig函数没有创建服务器状态的其他数据结构,数据库、慢查询日志、Lua环境、共享对象这些数据结构在之后的步骤才会被创建出来。当initServerConfig函数执行完毕之后,服务器就可以进入初始化的第二个节点——载入配置选项

载入配置选项

在启动服务器时,用户可以通过给定配置参数或者指定配置文件来修改服务器的默认配置。举个例子,如果我们在终端输入:

redis-server --port 10086

那么我们就通过给定配置参数的方式,修改了服务器的运行端口号。另外,如果在终端输入:

redis-server redis.conf

并且redis.conf文件中b包含以下内容:

# 将服务器的数据库数量设置为32个
databases 32
# 关闭RDB文件的压缩功能
rdbcompression  no

那么我们就通过指定配置文件的方式修改了服务器的数据库数量,以及RDB持久化模块的压缩功能。服务器在用initServerConfig函数初始化server变量之后,就会开始载入用户给定的配置参数和配置文件,
并根据用户设定的配置,对server变量相关属性的值进行修改。例如,在初始化server变量时,程序会为决定服务器端口号的port属性设置默认值:

void initServerConfig(void) {// ...// 默认值为6379server.port = REDIS_SERVERPORT;
}

不过,如果用户在启动服务器时为配置选项port指定了新值10086,那么server.port属性的值就会被更新为10086,
这将使得服务器的端口号从默认的6379变为yoghurt指定的10086.
例如,在初始化server变量时,程序会为决定数据库数量的dbnum属性设置默认值:

void initServerConfig(void) {// ...// 默认值为16server.dbnum = REDIS_DEFUALT_DBNUM;
}

不过,如果用户在启动服务器时为选项databases设置了值32,那么server.dbnum属性的值就会被更新为32,这将使得服务器的数据库数量从默认的16个变为用户指定的32个。其他配置选项相关的服务器状态属性的情况与上面列举的port属性和dbnum属性一样:

  • 1.如果用户为这些属性的相应选项指定了新的值,那么服务器就使用用户指定的值来更新相应的属性
    2.如果用户没有为属性的相应选项设置新的值,那么服务器就沿用之前initServerConfig函数为属性的默认值。服务器在载入用户指定的配置选项,并对server状态进行更新之后,服务器就可以进入初始化的第三个阶段——初始化服务器数据结构

初始化服务器数据结构

在之前执行initServerconfig函数初始化server状态时,程序只创建了命令表一个数据结构,不过除了命令表之外,服务器状态还包括其他数据结构,比如:

  • 1.server.clients链表,这个链表记录了所有与服务器相连的客户端的状态结构,链表的每隔节点都包含了一个redisClient结构实例
  • 2.server.db数组,数组中包含了服务器的所有数据库
  • 3.用于执行Lua脚本的Lua环境server.lua
  • 4.用于保存慢查询日志的server.slowlog属性
    当初始化服务器进行到这一步,服务器将调用initServer函数,为以上提到的数据结构分配内存,并在有需要时,为这些数据结构设置或者关联初始化值。服务器到现在才初始化数据结构的原因在于,服务器必须先载入用户指定的配置选项,然后才能正确地对数据结构进行初始化。如果在执行initServerConfig函数时就对数据结构进行初始化,那么一旦用户通过
    配置选项修改了和数据有关地服务器状态属性,服务器就要重新调整和修改已创建地数据结构。为了避免出现这种麻烦的情况,服务器选择了将server状态的初始化分为两步进行,initServerConfig函数主要负责
    初始化一般属性,而initServer函数主要负责初始化数据结构。除了初始化数据,initServer还进行了一些非常重要的设置操作,其中包括:
  • 1.为服务器设置进程信号处理器
  • 2.创建共享对象,这些对象包含Redis服务器经常用到的一些值,比如包含"OK"回复的字符串对象,包含"ERR"回复的字符串对象,包含整数1到10000的字符串对象等等,服务器通过重用这些共享对象来避免反复
    创建相同的对象
  • 3.打开服务器的监听端口,并为监听套接字关联连接应答事件处理器,等待服务器正式运行时接受客户端的连接
  • 4.为serverCron函数创建时间事件,等待服务器正式运行时执行serverCron函数
  • 5.如果AOF持久化功能已经打开,那么打开现有的AOF文件,如果AOF文件不存在,那么创建并打开一个新的AOF文件,为AOF写入做好准备
  • 6.初始化服务器的后台IO模块(bio),为将来的IO操作做好准备。
    当initServer函数执行完毕之后,服务器将用ASCII字符在日志中打印出Redis的图标,以及Redis的版本号信息
file use E:\redis\redis-server.exe /path/to/redis.conf_.__.-``__ ''-.__.-``    `.  `_.  ''-._           Redis 3.0.504 (00000000/0) 64 bit.-`` .-```.  ```\/    _.,_ ''-._(    '      ,       .-`  | `,    )     Running in standalone mode|`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379|    `-._   `._    /     _.-'    |     PID: 20212`-._    `-._  `-./  _.-'    _.-'|`-._`-._    `-.__.-'    _.-'_.-'||    `-._`-._        _.-'_.-'    |           http://redis.io`-._    `-._`-.__.-'_.-'    _.-'|`-._`-._    `-.__.-'    _.-'_.-'||    `-._`-._        _.-'_.-'    |`-._    `-._`-.__.-'_.-'    _.-'`-._    `-.__.-'    _.-'`-._        _.-'`-.__.-'[20212] 01 Apr 21:06:44.205 # Server started, Redis version 3.0.504
[20212] 01 Apr 21:06:44.210 * DB loaded from disk: 0.005 seconds
[20212] 01 Apr 21:06:44.210 * The server is now ready to accept connections on port 6379

还原数据库状态

在完成了对服务器状态server变量的初始化之后,服务器需要载入RDB文件或者AOF文件,并根据文件记录的内容来还原服务器的数据库状态。根据服务器是否启用了AOF持久化功能,服务器载入数据时所使用的目标文件会有所不同:

  • 1.如果服务器启用了AOF持久化功能,那么服务器使用AOF文件来还原数据库装填。
  • 2.相反地,如果服务器没有启用AOF持久化功能,那么服务器使用RDB文件来还原数据库装填。当服务器完成数据库状态还原工作之后,服务器将在日志中打印出载入文件并还原数据库状态所耗费地时长:
[7256] 01 Apr 21:07:11.795 * DB loaded from disk: 0.000 seconds

执行事件循环

在初始化地最后一步,服务器将打印出以下日志:

[7256] 01 Apr 21:07:11.795 * The server is now ready to accept connections on port 6379

并开始执行服务器的事件循环(loop).至此,服务器的初始化工作圆满完成,服务器现在开始可以接受客户端的连接请求,并处理客户端发来的命令请求了

http://www.hotlads.com/news/4454.html

相关文章:

  • 做视频网站用什么服务器配置十大网络营销成功案例
  • 淘宝客怎么做自己的网站12345浏览器网址大全
  • 博彩游戏网站怎么建设广告免费推广网
  • 支付网站怎么做免费b站动漫推广网站2023
  • 做ppt兼职网站免费google账号注册入口
  • 韩国网站怎么打开百度竞价推广联系方式
  • 网站建设 上海今日国际新闻
  • wordpress全部文件夹济南百度推广优化
  • 福州公司网站建设seo推广软件哪个好
  • 唐河县住房和城乡建设局网站手机游戏性能优化软件
  • 做ppt模版的网站市场营销策略有哪4种
  • 网站制作公司 沈阳优化seo软件
  • 标书制作费用一般多少百家号关键词排名优化
  • 温州自适应网站建设搜狗网
  • 宝塔搭建wordpress主机地址单页网站排名优化
  • 做网站设置时间seo搜索引擎优化报价
  • 怎样用wordpress建站百度竞价seo排名
  • 凡科用模板做网站广州seo网站公司
  • 网站app怎么做的百度的营销推广模式
  • 重庆网站建设招标深圳抖音推广
  • 大庆做网站的免费的推广引流软件
  • 比较流行的网站建设技术有哪些合肥网站优化技术
  • 上海市住房与城乡建设管理委员会网站免费建站的网站有哪些
  • 用来网站备案注册什么公司好文件外链生成网站
  • 济南汇展做网站自己做网络推广怎么做
  • 国外修图教程网站站长工具网站测速
  • 自己做的网站图片打开慢西地那非能提高硬度吗
  • 三亚房地产网站制作环球军事网最新军事新闻最新消息
  • 动态网站的工作原理广告优化师的工作内容
  • 一直在做竞价的网站是不是不需要做seo成品app直播源码有什么用