Redis過期數據刪除策略
Redis服務器事件模型
redis集群管理引發的討論
構建redis 3.x windows集群
Redis命令執行過程
Redis字符串底層數據結構
Redis列表底層數據結構
重新散列底層數據結構
Redis設置底層數據結構
Redizset底層數據結構
Redis客戶管理
Redis主從同步-從端
Redis主從同步-主機端
Redis主從超時檢測
Redis aof持久性
Redis rdb持久性
Redis數據恢復流程
Redistll實現原則
redis集群的建立
Redis集群集群選擇
?本文的目的是描述redis服務器處理客戶端命令的執行過程,包括redis的流程圖、源代碼和命令格式描述。redis的通信協議參考自redis官網。
?redis的整個服務器端命令執行過程如下圖所示:
?nread = read(FD,c-》;querybuf+qblen,readlen);負責讀取命令的數量,並通過processInputBuffer進行下壹步。
?核心是processInlineBuffer處理內聯命令,processMultibulkBuffer處理包括get/set等在內的批處理命令。,核心processCommand用於執行命令。
?其實執行命令的過程主要是找到命令對應的執行函數,通過lookupCommand找到對應的執行命令,通過call執行命令。
?負責執行命令c-& gt;cmd-& gt;Proc更新統計信息,並負責同步執行後傳播的數據。
?它主要負責將數據同步到AOF文件和從節點,feedAppendOnlyFile負責同步到AOF文件,而replicationFeedSlaves負責同步。
?AOF涉及多個緩存,包括
?包含命令和相應執行函數之間的映射關系,看起來應該非常清晰。
該協議的壹般格式如下。註意前面的*或$等字符,末尾的\r\n是分隔符。
其中,回復中的第二個元素為空。