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

大连 响应式网站网站创建知识

大连 响应式网站,网站创建知识,网站建设多钱,seo是怎么优化目录 最近在重读《Redis设计与实现》这本书#xff0c;通过记录笔记#xff0c;整理知识体系#xff0c;希望我的笔记分享#xff0c;能对致力于不断学习的你有点用。 1. 命令请求的执行过程概述 2.1 发送命令请求 2.2 读取命令请求 2.3命令执行#xff08;1#xf…目录 最近在重读《Redis设计与实现》这本书通过记录笔记整理知识体系希望我的笔记分享能对致力于不断学习的你有点用。 1. 命令请求的执行过程概述 2.1 发送命令请求 2.2 读取命令请求 2.3命令执行1查找命令 2.3命令执行2预备操作一系列检查和验证 2.3命令执行3 调用命令函数执行 2.3命令执行4 执行后续操作 2.4 将命令回复发送给客户端 总结 最近在重读《Redis设计与实现》这本书通过记录笔记整理知识体系希望我的笔记分享能对致力于不断学习的你有点用。 1. 命令请求的执行过程概述 一个命令请求从发送到获得回复的过程中客户端和服务器需要完成一系列操作。举个 例子如果我们使用客户端执行以下命令 redis SET KEY VALOE OK 那么从客户端发送 SET KEY VALUE 命令到获得回复OK 期间客户端和服务器共需要 执行以下4步操作 1客户端向服务器发送命令请求 SET KEY VALUE。 2服务器接收并处理客户端发来的命令请求 SET KEY VALUE在数据库中进行设置 操作并产生命令回复OK。 3服务器将命令回复 OK 发送给客户端。 4客户端接收服务器返回的命令回复OK并将这个回复打印给用户观看。 2.1 发送命令请求 Redis 服务器的命令请求来自 Redis 客户端当用户在客户端中键入一个命令请求时 客户端会将这个命令请求转换成协议格式然后通过连接到服务器的套接字将协议格式的 命令请求发送给服务器 如图14-1所示 2.2 读取命令请求 当客户端与服务器之间的连接套接字因为客户端的写人而变得可读时服务器将调用命 令请求处理器来执行以下操作 1读取套接字中协议格式的命令请求并将其保存到客户端状态的输人缓冲区里面。 2对输人缓冲区中的命令请求进行分析提取出命令请求中包含的命令参数参数的个数然后分别将参数和参数个数保存到客户端状态的argv属性和argc属性里面。 3 调用命令执行器执行客户端指定的命令。 继续用上一个小节的 SET命令为例子图14-2展示了程序将命令请求保存到客户端状 态的输人缓冲区之后客户端状态的样子。 图 14-2 客户端状态中的命令请求 解析命令后格式 2.3命令执行1查找命令 命令执行器 要做的第一件事就是根据客户端状态的 argv0参数在命令表command table中查找参数所指定的命令并将找到的命令保存到客户端状态的cmd 属性里面。 命令表是一个字典字典的键是一个个命令名字比如“set、get、de1等 等而字典的值则是一个个 redisCommand 结构每个 rediscommand 结构记录了一个 Redis 命令的实现信息表14-1记录了这个结构的各个主要属性的类型和作用。 2.3命令执行2预备操作一系列检查和验证 检查客户端状态的cmd指针是否指向 NULL如果是的话那么说明用户输人的 命令名字找不到相应的命令实现服务器不再执行后续步骤并向客户端返回一个 错误。 根据客户端 cmd 属性指向的 redisCommand 结构的 arity属性检查命令请求 所给定的参数个数是否正确当参数个数不正确时不再执行后续步骤直接向客 户端返回一个错误。比如说如果 redisCommand结构的arity属性的值为-3 那么用户输人的命令参数个数必须大于等于3个才行。 检查客户端是否已经通过了身份验证未通过身份验证的客户端只能执行 AUTH 命 令如果未通过身份验证的客户端试图执行除AUTH命令之外的其他命令那么服 务器将向客户端返回一个错误。 如果服务器打开了 maxmemory功能那么在执行命令之前先检查服务器的内存 占用情况并在有需要时进行内存回收从而使得接下来的命令可以顺利执行 2.3命令执行3 调用命令函数执行 在前面的操作中服务器已经将要执行命令的实现保存到了客户端状态的cmd属性里 面并将命令的参数和参数个数分别保存到了客户端状态的 argv 属性和 argv 属性里面 当服务器决定要执行命令时它只要执行以下语句就可以了 // client 是指向客户端状态的指针 client-cmd-proc client 因为执行命令所需的实际参数都已经保存到客户端状态的 argv 属性里面了所以命令 的实现函数只需要一个指向客户端状态的指针作为参数即可。 2.3命令执行4 执行后续操作 在执行完实现函数之后服务器还需要执行一些后续工作 如果服务器开启了慢查询日志功能那么慢查询日志模块会检查是否需要为刚刚执 行完的命令请求添加一条新的慢查询日志。 根据刚刚执行命令所耗费的时长更新被执行命令的rediscomand结构的 mi1liseconds 属性并将命令的redisCommand结构的cal1s 计数器的值增一。 如果服务器开启了 AOF 持久化功能那么 AOF 持久化模块会将刚刚执行的命令请 求写人到 AOF缓冲区里面。 如果有其他从服务器正在复制当前这个服务器那么服务器会将刚刚执行的命令传 播给所有从服务器。 当以上操作都执行完了之后服务器对于当前命令的执行到此就告一段落了之后服务 器就可以继续从文件事件处理器中取出并处理下一个命令请求了。 2.4 将命令回复发送给客户端 前面说过命令实现函数会将命令回复保存到客户端的输出缓冲区里面并为客户端的 套接字关联命令回复处理器当客户端套接字变为可写状态时服务器就会执行命令回复处 理器将保存在客户端输出缓冲区中的命令回复发送给客户端。 当命令回复发送完毕之后回复处理器会清空客户端状态的输出缓冲区为处理下一个 命令请求做好准备。 以图14-7所示的客户端状态为例子当客户端的套接字变为可写状态时命令回复处 理器会将协议格式的命令回复“OK\r\n发送给客户端。 继续以之前的 SET命令为例子当客户端接到服务器发来的“OK\z\n协议回复时 它会将这个回复转换成OK\n然后打印给用户看 redis SET KEY VALUE OK 总结 以上就是 Redis 客户端和服务器执行命令请求的整个过程了 如果觉得对你有帮助请点赞收藏和关注我会持续更新的
http://www.pierceye.com/news/24606/

相关文章:

  • 企业内部网站建设费用wordpress 获取图片地址
  • 网站建设项目总结郴州市简介
  • 软件下载网站如何建设单页手机网站源码
  • wordpress无域名建站甘肃省建设厅网站质监局
  • 南阳网站建设价格wordpress有什么选什么用
  • 一起合伙做项目的网站网站优化要怎么做才会做到最佳
  • 怎么看待网站开发自然资源网站建设方案
  • 外卖网站开发能多少钱自己做微信团购小程序
  • 做有色金属哪个网站好企业管理网课
  • 网站策划建设方案书国外搜索关键词的网站
  • 南桥网站建设公司注销后 网站备案
  • 做移动网站优化快网站开发如何模块化
  • 做网站准备的资料如何制作个人网页封面
  • 姑苏区建设局网站wordpress 用户权限
  • 桂林有帮做公司网站吗一般的企业网站开发价格
  • 涿州规划建设局网站抖音粉丝购买网站
  • 旧宫网站建设结合公众号小店做网站
  • 一般做网站都在什么网做手机建设网站
  • 东莞企业营销型网站网站设计制作教程
  • 全国美容网站建设软文外链代发
  • 做网站学套模板网站
  • 做网站的主要作用买个网页多少钱
  • 怎么拥有自己的网站免费个人网站搭建
  • 珠海网站空间注册哪个软件是网页编辑软件
  • 大田县建设资讯网站搭建交流平台
  • 网站建设什么服务器好惠阳做网站公司
  • wordpress 名站怎么看网站域名
  • 做网站的服务器cpu异常cms网站建设的实训总结
  • 如何做网站流量统计用商标域名注册的非盈利网站
  • 如何注册网站怎么注册百度推广如何获取精准的客户