代碼地址github:cache

花了一天時間看了下實驗樓的cache組件,使用golang編寫的,收獲還是蠻多的,緩存組件的設計其實挺簡單的,主要思路或者設計點如下:

  • 全局struct對象:用來做緩存(基于該struct實現(xiàn)增刪改查基本操作)

  • 定時gc功能(其實就是定時刪除struct對象中過期的緩存對):剛好用上golang的ticker外加channel控制實現(xiàn)

  • 支持緩存寫文件及從文件讀緩存:其實就是將這里的key-value數(shù)據(jù)通過gob模塊進行一次編解碼操作

  • 并發(fā)讀寫:上鎖(golang支持讀寫鎖,一般使用時在被操作的struct對象里面聲明相應的鎖,即sync.RWMutex,操作之前先上鎖,之后解鎖即可)

其實大概就是這么多,下面來分解下:

1、cache組件

要保存數(shù)據(jù)到緩存(即內(nèi)存中),先要設計數(shù)據(jù)結(jié)構(gòu),cache一般都有過期時間,抽象的struct如下:

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式

我想了解如何學習

姓名:
手機:
留言:
 

<pre id="nhwnj"><noframes id="nhwnj"><span id="nhwnj"></span>