推薦一下自己的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
相關文章
- 一個內建於專案的分散式快取服務分散式快取
- 分散式快取分散式快取
- Go優秀開源專案推薦Go
- Go 的練手專案有哪些值得推薦?Go
- redis→分散式快取Redis分散式快取
- 分散式快取方案分散式快取
- 聊聊分散式快取分散式快取
- 聊聊本地快取和分散式快取快取分散式
- 雲上的分散式快取分散式快取
- 從快取到分散式快取的那些事快取分散式
- Go 語言入門練手專案推薦Go
- SmartSql Redis 分散式快取SQLRedis分散式快取
- 分散式快取擊穿分散式快取
- 分散式快取NCache使用分散式快取
- 分散式快取 - 快取簡介,常用快取演算法分散式快取演算法
- Redis——快取穿透、快取擊穿、快取雪崩、分散式鎖Redis快取穿透分散式
- Linux系統中常見的分散式檔案系統推薦!Linux分散式
- 分散式之快取擊穿分散式快取
- k04_分散式快取分散式快取
- 分散式快取 - 概念解釋分散式快取
- 分散式快取基礎教程分散式快取
- Gitlab Runner的分散式快取實戰Gitlab分散式快取
- 分散式系統快取系列一 認識快取分散式快取
- 用Java寫一個分散式快取——快取管理Java分散式快取
- Web 專案的快取策略Web快取
- 分散式快取架構綜述分散式快取架構
- 分散式系統中有哪些快取?分散式快取
- 應對分散式快取當機的方案分散式快取
- 解析分散式系統的快取設計分散式快取
- 推薦個超好玩的專案
- 老司機分散式書籍推薦分散式
- ASP.NET Core - 快取之分散式快取ASP.NET快取分散式
- 搞懂分散式技術15:快取更新的套路分散式快取
- 搞懂分散式技術13:快取的那些事分散式快取
- 結合Hazelcast和Spring的分散式快取 - reflectoringASTSpring分散式快取
- 《分散式快取》讀書筆記二分散式快取筆記
- 深入分散式快取 — 學習總結分散式快取
- 專案管理軟體推薦專案管理