大概介紹
其實關於groupcache的介紹網上非常的多,搜索出來清一色都是說的介紹,當然也有配圖如何部署,但是文字與配圖完全不在一個時空,圖也是copy國外的一篇博客。它不像其它的一些緩存數據庫有個服務端,需要客戶端去連接,文檔中明確說明了它就是一個程序庫,所以沒有服務端與客戶端這麼一說,換句話說,它本沒有服務端,又或者是人人都是服務端,食神的感覺油然而生。
主要代碼結構
它的代碼結構也比較清晰,代碼量也不是很大,很適合大家去閱讀學習。主要分為了consistenthash
(提供一致性哈希算法的支持),lru
(提供了LRU方式清楚緩存的算法),singleflight
(保證了多次相同請求只去獲取值一次,減少了資源消耗),還有一些源文件:byteview.go
提供類似於一個數據的容器,http.go
提供不同地址間的緩存的溝通的實現,peers.go
節點的定義,sinks.go
感覺就是一個開闢空間給容器,並和容器交互的一個中間人,groupcache.go
整個源碼裡的大當家,其它人都是為它服務的。