首页 > 数据库 >客户端跟redis的一次通信流程

客户端跟redis的一次通信流程

时间:2023-02-20 18:32:48浏览次数:55  
标签:AE socket READABLE 流程 redis 处理器 客户端

1.在redis启动初始化的时候,redis会将连接应答处理器跟AE_READABLE事件关联起来,接着如果一个客户端跟redis发起连接,此时会产生一个AE_READABLE事件,然后由连接应答处理器来处理客户端建立的连接,创建客户端对应的socket的AE_READABLE事件跟命令请求处理器关联起来

2.当客户端向redis发起请求的时候(不管是读请求还是写请求,都一样),首先就会在socket产生一个AE_READABLE事件,然后由对应的命令请求处理器来处理,这个命令请求处理器就会从socket中读取请求相关数据,然后进行执行和处理

3.多个socket可能并发的产生不同的操作,每个操作对应不同的文件事件,但是IO多路复用程序会监听多个socket,但是会将socket放入一个队列中排列,每次从队列中取出一个socket给事件分派器,事件分派器把socket给对应的事件处理器

4.接着redis这边准备好了给客户端相应数据之后,就会将socket的AE_READABLE事件跟命令回复处理器关联起来,当客户端这边准备好读取相应数据时,就会在socket上产生一个AE_WRITABLE事件,就由对应的命令回复处理器来处理,就是将准备好的响应数据写入socket,供客户端来读取

5.命令回复处理器写完后,就会删除这个socket的AE_WRITABLE事件和命令回复处理器的关联关系

标签:AE,socket,READABLE,流程,redis,处理器,客户端
From: https://blog.51cto.com/u_15973676/6069216

相关文章

  • Memcached与Redis有什么区别
    Redis和Memcached都是基于内存的数据存储系统。Memcached是高性能分布式内存缓存服务,其本质上就是一个内存key-value数据库。Redis是一个开源的key-value存储系统。与......
  • activiti 6 遍历流程任务
    XMLInputFactoryxif=XMLInputFactory.newInstance();List<ProcessDefinition>list=repositoryService.createProcessDefinitionQuery().latestVersi......
  • app上架需要准备什么以及上架流程
     上架前需要准备的材料:众所周知,应用市场主要分为两类,一类是AppStore,另一类是安卓市场。而安卓市场又分为:第三方市场(如:应用宝、360手机助手、豌豆荚),和手机厂商市......
  • 银河麒麟V10系统安装Redis
    1、[root@localhostopt]#yuminstallcpp输入:y  2、[root@localhostopt]#yuminstallbinutils  3、[root@localhostopt]#yuminstallglibc4、[root@......
  • Redis 数据结构
    本文主要描述reids数据结构和底层数据结构的实现,用于熟悉redis的底层数据结构实现原理,下图是reids的整个数据结构组成。这篇文章主要介绍value对象这部分数据结构 SDS......
  • java redis 密码输错5次,已锁定,请30分钟后重试!
    Stringusername=sysUser.getUsername();StringretryCountNum=redisService.get(username);if(StrUtil.isNotBlank(retryCountNum)&&Integer.valueOf(retryCountNum......
  • 流程控制
    引子流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构)、分支结构(用到if判断)、循环结构(用到while与for)一......
  • 完整商业软件的开发流程
    完整商业软件的开发流程1、产品立项,确定要做的内容、效果和收益2、开始产品原型,确定初步逻辑和技术——>需求评审,定开发节点、UI节点3、根据原型出设计图,确定实现细节......
  • Java流程控制
    Java流程控制Scanner对象next():一定要读取到有效字符后才可以结束输入对输入有效字符之前遇到的空白,next()方法会自动将其去掉只有输入有效字符后才能将其后面的......
  • C#操作注册表简单教程(附带操作某数据库客户端注册表以实现重置试用期的效果)
     前言:使用Windows系统,经常会遇到需要做注册表的操作。例如,一些软件需要修改注册表、自己编写的软件需要新建注册表进行写入注册信息等等。以下内容以某常见的数据库操作......