推薦一下自己的Go分散式快取專案
最近整理了一下自己的分散式快取方案,是 cache-aside 模式的二級快取(memory+redis)實現,目前已經線上上投入使用,經過百萬日活的驗證。
記憶體部分是採用的是 sync.Map, 讀取快取的時候先從記憶體讀,如果未讀到則去讀 redis,如果 redis 未讀到,則根據定義的載入函式載入到 redis 和記憶體。
快取有 lazy 模式,為了避免快取被擊穿,可以設定 lazy 模式,快取資料存活的時間更久,但是每次讀取的時候依然會判斷資料是否是最新的,不是最新的話會非同步載入更新。
通過 redis 的 Publish/Subscribe 功能,實現快取的分散式更新,目前僅實現刪除同步。
因為是很輕量級的,所以效能理論上會很不錯,測試 1000 個併發毫無壓力,有興趣的同學可以驗證一下。理論上效能的瓶頸在於載入函式裡資料庫的查詢,如果資料庫配置夠好,而 redis 單機 10 萬 QPS 應該沒什麼問題,那麼應該可以達到比較高的併發。
專案地址 https://github.com/seaguest/cache
歡迎大家批評指正!
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- 5個強大的Java分散式快取框架推薦Java分散式快取框架
- 一個內建於專案的分散式快取服務分散式快取
- 分散式快取分散式快取
- Go優秀開源專案推薦Go
- Go 的練手專案有哪些值得推薦?Go
- 分散式快取方案分散式快取
- redis→分散式快取Redis分散式快取
- 聊聊分散式快取分散式快取
- 聊聊本地快取和分散式快取快取分散式
- EhCache 分散式快取/快取叢集分散式快取
- 雲上的分散式快取分散式快取
- gmcache一個用go寫的分散式快取,類似memcachedGo分散式快取
- 分散式快取擊穿分散式快取
- SmartSql Redis 分散式快取SQLRedis分散式快取
- 分散式快取NCache使用分散式快取
- Redis——快取穿透、快取擊穿、快取雪崩、分散式鎖Redis快取穿透分散式
- 分散式快取 - 快取簡介,常用快取演算法分散式快取演算法
- Hazelcast簡單的分散式快取AST分散式快取
- Go 語言入門練手專案推薦Go
- 分散式快取 - 概念解釋分散式快取
- 分散式之快取擊穿分散式快取
- 關於分散式快取memcache分散式快取
- k04_分散式快取分散式快取
- 分散式快取基礎教程分散式快取
- 分散式系統快取系列一 認識快取分散式快取
- 用Java寫一個分散式快取——快取管理Java分散式快取
- 老司機分散式書籍推薦分散式
- 各位高手們,誰能詳細分析一下分散式快取的實現原理。分散式快取
- Linux系統中常見的分散式檔案系統推薦!Linux分散式
- 分散式系統中有哪些快取?分散式快取
- 分散式快取系統之Memcached分散式快取
- Memcached 分散式快取實現原理分散式快取
- 分散式快取架構綜述分散式快取架構
- 應對分散式快取當機的方案分散式快取
- 解析分散式系統的快取設計分散式快取
- Gitlab Runner的分散式快取實戰Gitlab分散式快取
- Hadoop DistributedCache分散式快取的使用Hadoop分散式快取
- Web 專案的快取策略Web快取