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