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是分隔符。
其中,回复中的第二个元素为空。