Redis緩存設計原則

 

  • 緩存熱數據
  • 緩存讀寫順序:讀,先緩存,後數據庫;寫,先數據庫,後緩存
  • 所有緩存數據都應該設置過期時間
  • 緩存的過期時間應該避免集中過期,造成緩存擊穿
  • 緩存key具備可讀性,應避免不同業務出現同名的key,簡單縮寫可節省內存空間
  • 避免緩存穿透,數據庫中查不到的數據,可在Redis中設置空值,以避免緩存無數據而每次達到數據庫
  • 緩存預熱,上線之前可預先將數據寫入緩存中
  • 數據一致性問題,根據業務需求選擇合適的緩存更新策略:
    • 主動更新:在數據源發生變化時同步更新緩存。一致性高,維護成本較高
    • 被動刪除:設置過期時間。一致性較低,維護成本低
  • 緩存雪崩問題,緩存由於某些原因不能提供服務,
    • 保證緩存服務高可用
    • 服務限流並降級
    • 提前演練緩存掛掉後出現的問題
  • 熱點數據問題,當一個熱點數據併發量非常大,緩存失效瞬間,大量線程重建緩存,造成數據源壓力加大
    • 互斥鎖:只允許一個線程重建緩存,其他線程等待執行完再從緩存獲取。如果出現問題,可能會導致死鎖
    • 永不過期,定期構建緩存;在特殊情況下數據源發生變化,會導致數據不一致
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章