网站二级页面模板,有人知道网站怎么做吗,保障网装修平台,高质量摄影作品网站一个命令请求从发送到完成的步骤
如下#xff1a; 1、客户端将命令请求发送给服务器
当用户在客户端中键入一个命令请求时#xff0c;客户端会将这个命令请求转换成协议格式#xff0c;然后通过连接到服务器的套接字#xff0c;将协议格式的命令请求发送给服务器。
2、服…一个命令请求从发送到完成的步骤
如下 1、客户端将命令请求发送给服务器
当用户在客户端中键入一个命令请求时客户端会将这个命令请求转换成协议格式然后通过连接到服务器的套接字将协议格式的命令请求发送给服务器。
2、服务器读取命令请求并分析出命令参数
读取套接字中协议格式的命令请求将其保存到客户端状态的输入缓冲区中对输入缓冲区中的命令请求进行解析提取出命令参数以及命令参数的个数保存到客户端状态的argv属性与argc属性调用命令执行器执行指定指令
3、命令执行器根据参数查找命令的实现函数然后执行实现函数并得到命令回复
根据客户端状态的argv[0]参数在命令表中查找参数所指定的命令并将找到的命令保存到客户端状态的cmd属性里执行预备操作确保命令可以正确执行一些检查操作将客户端状态指针作为参数传入实现函数进行执行执行后续工作 若开启了慢查询日志功能模块会检查是否需要给刚刚执行完的命令添加一条慢查询日志若开启了AOF持久化模块会将刚刚执行的命令请求写入到AOF缓冲区中如果有从服务器正在复制当前服务器将刚刚执行的命令传播给所有从服务器
4、服务器将命令回复返回给客户端
命令回复一开始保存在客户端状态的输出缓冲区里并为客户端的套接字关联命令回复处理器当客户端套接字变为可写状态时服务器会执行命令回复处理器将保存在客户端输出缓冲区的命令回复发送给客户端命令回复发送完毕回复处理器清空客户端状态的输出缓冲区客户端结收到协议格式的命令回复后解析并打印
初始化服务器步骤
1、初始化服务器状态 创建struct redisServer类型的实例变量server作为服务器的状态并为结构中的各个属性设置默认值 例如 设置服务器的运行ID 设置服务器的默认运行频率 设置服务器的默认配置文件路径 设置服务器的运行架构 设置服务器的默认端口号 设置服务器的默认RDB持久化条件和AOF持久化条件 初始化服务器的LRU时钟 创建命令表 2、载入服务器配置 3、初始化服务器数据结构 除了命令表之外服务器状态还包含其他数据结构
server.clients链表记录了所有与服务器相连的客户端的状态结构链表的每个节点都包含了一个redisClient结构实例server.db数组数组中包含了服务器的所有数据库server.pubsub_channels用于保存频道订阅信息的字典server.pubsub_patterns用于保存模式订阅信息的链表servber.lua用于执行Lua脚本的Lua环境server.slowlog用于保存慢查询日志 之后调用initServer函数为数据结构分配内存并且设置初始化值通过配置文件的参数 当然该函数还进行了一些更加重要的操作为服务器设置进程信号处理器创建共享对象之后服务器将通过重用共享对象来避免反复创建相同的对象打开服务器的监听端口并为监听套接字关联连接应答事件处理器等待服务器正式运行时接收客户端的连接创建时间事件若AOF持久化功能开启那么打开现有的AOF文件若文件不存在新建一个初始化服务器后台的I/O模块
4、还原数据库状态
如果启用了AOF持久化功能用AOF文件还原数据库状态否则使用RDB文件还原
5、执行事件循环