服务器与客户端.pdfVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
服务器与客户端.pdf

服务器与客户端 服务器与客户端 初始化服务器 1. 初始化服务器全局状态 2. 载⼊配置⽂件 3. 创建 daemon 进程 4 . 初始化服务器功能模块 5. 载⼊数据 6. 开始事件循环 客 端连接到服务器 命令的请求、处理和结果返回 命令请求实例: SET 的执⾏过程 ⼩结 前⾯的章节介绍了所有 Redis 的重要功能组件:数据结构、数据类型、事务、Lua 环 境、事件处理、数据库、持久化,等等,但是我们还没有对 Redis 服务器本⾝做任何 介绍。 不过,服务器本⾝并没有多少需要介绍的新东西,因为服务器除了维持服务器状态之 外,最重要的就是将前⾯介绍过的各个功能模块组合起来,⽽这些功能模块在前⾯的 章节⾥已经介绍过了,所以本章将焦点放在服务器的初始化过程,以及服务器对命令 的处理过程上。 本章⾸先介绍服务器的初始化操作,观察⼀个 Redis 服务器从启动到可以接受客 端 连接,需要经过什么步骤。 然后介绍客 端是如何连接到服务器的,⽽服务器又是如何维持多个客 端的不同状 态的。 ⽂章最后将介绍命令从发送到处理的整个过程,并列举了⼀个 SET 命令的执⾏过程作 为例⼦。 初始化服务器 从启动 Redis 服务器,到服务器可以接受外来客 端的⽹络连接这段时间,Redis 需要 执⾏⼀系列初始化操作。 整个初始化过程可以分为以下六个步骤: 1. 初始化服务器全局状态。 2. 载⼊配置⽂件。 3. 创建 daemon 进程。 4 . 初始化服务器功能模块。 5. 载⼊数据。 6. 开始事件循环。 以下各个⼩节将介绍 Redis 服务器初始化的各个步骤。 1. 初始化服务器全局状态 redis.h/redisServer 结构记录了和服务器相关的所有数据,这个结构主要包含 以下信息: 服务器中的所有数据库。 命令表:在执⾏命令时,根据字符来查找相应命令的实现函数。 事件状态。 服务器的⽹络连接信息:套接字地址、端⼜,以及套接字描述符。 所有已连接客 端的信息。 Lua 脚本的运⾏环境及相关选项。 实现订阅与发布 (pub/sub )功能所需的数据结构。 ⽇志 (log )和慢查询⽇志 (slowlog )的选项和相关信息。 数据持久化 (AOF 和 R B )的配置和状态。 服务器配置选项:⽐如要创建多少个数据库,是否将服务器进程作为 daemon 进程来运⾏,最⼤连接多少个客 端,压缩结构 (zip structure )的实体数量, 等等。 统计信息:⽐如键有多少次命令、不命中,服务器的运⾏时间,内存占⽤,等 等。 Note 为了简洁起见,上⾯只列出了单机情况下的 Redis 服务器信息,不包含 SENTINEL 、 MONITOR 、 CLUSTER 等功能的信息。 在这⼀步,程序创建⼀个 redisServer 结构的实例变量 server ⽤作服务器的全局 状态,并将 server 的各个属性初始化为默认值。 当 server 变量的初始化完成之后,程序进⼊服务器初始化的下⼀步:读⼊配置⽂ 件。 2. 载⼊配置⽂件 在初始化服务器的上⼀步中,程序为 server 变量 (也即是服务器状态)的各个属性 设置了默认值,但这些默认值有时候并不是最合适的: ⽤ 可能想使⽤ AOF 持久化,⽽不是默认的 R B 持久化。 ⽤ 可能想⽤其他端⼜来运⾏ Redis ,以避免端⼜冲突。 ⽤ 可能不想使⽤默认的 16 个数据库,⽽是分配更多或更少数量的数据库。 ⽤ 可能想对默认的内存限制措施和回收策略做调整。 等等。 为了让使⽤者按⾃⼰的要求配置服务器,Redis 允许⽤ 在运⾏服务器时,提供相应 的配置⽂件 (config file )或者显式的选项 (option ),Redis 在初始化完 server 变量 之后,会读⼊配置⽂件和选项,然后根据这些配置来对 server 变量的属性值做相应 的修改: 1. 如果单纯执⾏ redis-serv

文档评论(0)

jackzjh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档