引言
一直在使用redis,可是卻沒有系統的瞭解過它的底層實現,準備邊學習邊記錄,深刻了解redis。 打算分析如下幾個方面:java
- redis的基本類型及底層原理與java對比,每種數據類型的使用場景
- redis底層對象
- key的一致性Hash算法
- 單線程的redis「快」
- redis的過時策略以及內存淘汰機制
- redis分佈式鎖原理
- redis備份方式
- 多機環境下主從賦值、哨兵、集羣的優缺點
- 哨兵機制與選舉算法
- 集羣機制的分片原理
- 緩存的key併發競爭問題
- 緩存和數據庫雙寫一致性問題
- 緩存雪崩問題
- 緩存擊穿問題
這只是暫時列舉出來,最後有可能刪減。git
前期準備:github
帶註釋的源碼
redis-3.0-annotatedredis
參考資料
《Redis設計與實現》PDF
關注下方公衆號,回覆redis
索要。算法
Redis 源碼日誌 參考的博客文章將在每一篇文章下方給出。數據庫