->传输
服务端:接收->RESP解码->原始命令
redis高性能的原因
redis是纯内存的操作,性能瓶颈不在cpu上(因为其不读取硬盘数据),而是网络IO时间 和 内存大小 问题上,而且在硬件上基本不涉及磁盘...client对象和socket对象,然后产生read事件,将此事件与 命令出来handler关联,表示后续此socket为可读事件,也就是接收客户端的命令操作;
当接收到客户端命令的读事件时,Reactor...socket中的命令,然后执行;
写事件: redis服务端将命令执行结果 写入socket文件返回给客户端;
当与同一个客户端的socket 读事件 和写事件同时发生时,先执行读事件;
时间事件
在指定时间点运行的事件...功能如下
更新服务器各种统计信息,比如时间,内存占用,数据库占用情况
清理数据库中过期的键值对
关闭和清理连接失效的客户端
尝试进行AOF,RDB 持久化操作
如果服务器是主节点,则对附属节点进行同步数据...对不合理的数据库大小进行调整;
2种事件在事件循环中的处理顺序
2种事件必须有先后顺序,无法抢占CPU资源,中断某个事件
当2种事件类型都有需要执行的事件时,先执行 文件事件(客户端的命令) 等执行完后