what:
redis服务器执行的大体流程:
1、client向服务器发送请求命令;
2、redis服务器从请求中读取命令,并交给“请求处理器”去执行;
大体分为:a、请求保存到输入缓冲区里面;b、解析协议,提取出命令参数,保存到客户端状态argv和argc属性;c、调用命令执行器,执行客户端请求命令;
3、命令执行:
大体分为:查找命令 -> 执行预处理 -> 执行命令实现函数 -> 后续处理
查找命令:就是查找命令(如:set命令)对应的redisCommand结构。对于set命令,set是key,redisCommand结构是value。其中redisCommand里面有很多属性。
执行预处理:为了确保命令可以正确顺利地被执行,做的一些前期检查和准备;
执行命令实现函数:执行操作:client>cmd>proc(client),产生响应回复。回复会被保存到输出缓冲里面,就是buf属性和reply属性。之后函数还会为客户端的套接字关联命令回复处理器。当客户端套接字变成可写状态时,服务器就是执行命令回复处理器。将保存在客户端输出缓冲区的数据发送给客户端。发送完成后,会把输出缓冲区清空。
后续处理:如,服务器开启了AOF持久化功能,那么AOF持久化模块会将刚刚执行的命令请求写入到AOF缓冲区里面;如,有其他从服务器正在复制当前这个服务器,那么服务器会将刚刚执行的命令传播给所有从服务器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。