最近學習了Redis,對其內部結構較爲感興趣,爲了進一步瞭解其運行原理,我打算本身動手用C++寫一個redis。這是我第一次造輪子,因此記念一下 ^ _ ^。git
源碼github連接,項目如今實現了客戶端與服務器的連接與交互,以及一些Redis的基本命令,下面是測試結果:github
(左邊是服務端,右邊是客戶端)
redis
爲了完善其功能而且鍛鍊一下本身的數據結構與算法,我下一階段打算根據《Redis設計與實現》一書優化數據結構與算法從而完善本身的項目。算法
首先是對服務端的初始化,包括數據庫的初始化以及命令集合的初始化。
數據庫
在客戶端鏈接以後,開始建立客戶端對其進行初始化,而且將其與服務端對應的數據庫進行鏈接。
服務器
在客戶端發送命令以後,服務端接受命令,對命令的合法性進行判斷,而後在命令集合中查找相關命令並執行,最後返回執行結果給客戶端。數據結構