一站式学习Redis 从入门到高可用分布式实践(慕课)第十章 缓存设计与优化
課程目錄
緩存的使用與設計
- 緩存的受益與成本
? ? ? ? ?受益:1.加速讀寫:通過緩存加速讀寫速度:CPU L1/L2/L3Cache、Linux page Cache加速硬盤讀寫、瀏覽器緩存、Ehcache緩存數據庫結果
? ? ? ? ? ? ? ? ? ? 2.降低后端負載:后端服務器通過前端緩存降低負載:業務端使用Redis降低后端MySQL負載等
? ? ? ? ?成本:1.數據不一致 :緩存層和數據層有時間窗口不一致,和更新策略有關
? ? ? ? ? ? ? ? ? ? 2.代碼維護成本:多了一層緩存邏輯
? ? ? ? ? ? ? ? ? ? 3.運維成本:例如Redis Cluster
? ? ? ? ? ?使用場景
? ? ? ? ? 1.降低后端負載:對高消耗的SQL:join結果集/分組統計結果緩存
? ? ? ? ? ?2.加速請求響應:利用Redis/Memcache優化IO響應時間
? ? ? ? ? ?3.大量寫合并為批量寫:如計數器先Redis累加再批量寫DB
- 緩存更新策略
? ? ? ? ? ?1.LRU/LFU/FIFO算法剔除:例如maxmemory-policy
? ? ? ? ? ?2.超時剔除:例如expire
? ? ? ? ? ?3.主動更新:開發控制生命周期
- 緩存粒度控制
? ? ? ? ? ?三個角度
? ? ? ? ? ? ? ? ?1.通用性:全量屬性更好。
? ? ? ? ? ? ? ? ?2.占用空間:部分屬性更好。
? ? ? ? ? ? ? ? ?3.代碼維護:表面上全量屬性更好。
- 緩存穿透優化----大量請求不命中
? ? ? ? ? ? ? ? ? ? ?原因:? 1.業務代碼自身問題
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.惡意共計、爬蟲等等
? ? ? ? ? ? ? ? ?如何發現:1.業務的響應時間(可預計的)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.業務本身問題
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.相關指標:總調用數、緩存層 命中數、存儲層命中數
? ? ? ? ? ? ? ? ? ? 解決方法:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.緩存空對象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.布隆過濾器攔截
- 無底洞問題優化
? ? ? ? ? ? ? ? ? ? ? ? 加機器性能沒有提升,反而下降
?
- 緩存雪崩優化
- 熱點key重建優化
?
互斥鎖 :減少了重建緩存次數,增加了等待
永不過期:可能數據不一致
?
轉載于:https://www.cnblogs.com/jiang910/p/10036759.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的一站式学习Redis 从入门到高可用分布式实践(慕课)第十章 缓存设计与优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: https原理简述
- 下一篇: POJ-1724 深搜剪枝