Redis命令执行过程

Redis数据消除原理

Redis过期数据删除策略

Redis服务器事件模型

redis集群管理引发的讨论

构建redis 3.x windows集群

Redis命令执行过程

Redis字符串底层数据结构

Redis列表底层数据结构

重新散列底层数据结构

Redis集底层数据结构

Redizset底层数据结构

Redis客户管理

Redis主从同步-从端

Redis主从同步-主机端

Redis主从超时检测

坚持不懈

Redis rdb持久性

Redis数据恢复过程

Redistll实现原则

建立redis集群集群

Redis集群集群选择

?本文的目的是描述redis服务器处理客户端命令的执行过程,包括redis的流程图、源代码和命令格式描述。redis的通讯协议参考自redis官网。

?redis的整个服务器端命令执行过程如下图所示:

?nread = read(fd,c-& gt;querybuf+qblen,readlen);负责读取命令的数量,并通过processInputBuffer进行下一步。

?核心是processInlineBuffer处理内联命令,processMultibulkBuffer处理包括get/set等批处理命令。,核心processCommand用于执行命令。

?其实执行一个命令的过程主要是找到命令对应的执行函数,通过lookupCommand找到对应的执行命令,通过call执行命令。

?负责执行命令c-& gt;cmd->;Proc更新统计信息,并负责同步执行后传播数据。

?主要负责同步数据到AOF文件和从节点,feedAppendOnlyFile负责同步到AOF文件,replicationFeedSlaves负责同步。

?AOF涉及多个缓存,包括

?包含了命令和对应的执行函数之间的映射关系,看起来应该非常清晰。

该协议的一般格式如下。注意前面的*或$等字符,末尾的\r\n是分隔符。

其中,回复中的第二个元素为空。