只有 1000 行代碼的分布式數(shù)據(jù)庫,真的牛逼值得學習
【公眾號回復 “1024”,免費領(lǐng)取程序員賺錢實操經(jīng)驗】

大家好,我是你們的章魚貓。
今天推薦的項目非常值得使用 Go 語言編程的同學去學習和研究,尤其是對于初學者。minikeyvalue 是一個只有差不多 1000 行代碼的分布式 Key-Value 數(shù)據(jù)庫,代碼雖然比較少,但是功能一點都不少,支持多機器的狀態(tài)復制,同時對于 Value 的存儲支持 1MB 到 1GB 的大小。
minikeyvalue 項目是受到了 SeaweedFS 的啟發(fā),但是 minikeyvalue 能夠支持擴展存儲 10 億級別 PB 級的數(shù)據(jù)文件存儲。目前 minikeyvalue 已經(jīng)在 comma.ai 的生產(chǎn)環(huán)境使用。
一個核心簡化 minikeyvalue 的設(shè)計點是該項目使用 Nginx 做為我們的數(shù)據(jù)文件的存儲服務(wù)。
同時 minikeyvalue 依賴 LevelDB 做為數(shù)據(jù)的索引服務(wù),一定程度上對 minikeyvalue 簡化了很多。而所有的數(shù)據(jù)會以 blob 數(shù)據(jù)塊的形式存儲在每臺機器的文件系統(tǒng)中,這樣我們就可以很容易的在每臺機器上對數(shù)據(jù)塊進行增加和刪除,用來做數(shù)據(jù)均衡。
以下是 minikeyvalue 支持的 API:

以下是啟動方式,由于依賴了 Nginx,所以服務(wù)啟動前會先啟動 Nginx:

同時也有一些其他基本的使用方法和性能測試命令。

最后說一下代碼,就跟文章前面說的一樣,真的只有 1000 行左右的代碼,除去測試代碼實際只有 5 個代碼文件,任何同學都可以參考學習一下。

更多項目詳情請查看如下鏈接。
開源項目地址:https://github.com/geohot/minikeyvalue
---特別推薦---
特別推薦:一個新的優(yōu)質(zhì)的專注分享各種瀏覽器插件、黑科技教程、各種你想不到的高效率軟件及工具的公眾號,「黑科技指北」,非常值得大家關(guān)注。
