1。什么是Redis
Redis是一個使用ANSI C編寫的開源、支持網絡、基於內存、可選持久性的鍵值對存儲數據庫
2。緩存雪崩 | 緩存穿透 | 保證緩存與數據庫雙寫時一致的問題
(1)緩存雪崩:
- Redis掛掉了,請求全部走數據庫。
- 對緩存數據設置相同的過期時間,導致某段時間內緩存失效,請求全部走數據庫。
注:緩存雪崩如果發生了,很可能就把我們的數據庫搞垮,導致整個服務癱瘓
(2)緩存穿透
緩存穿透是指查詢一個一定不存在的數據。由於緩存不命中,並且出於容錯考慮,如果從數據庫查不到數據則不寫入緩存,這將導致這個不存在的數據每次請求都要到數據庫去查詢,失去了緩存的意義。
注:緩存穿透如果發生了,也可能把我們的數據庫搞垮,導致整個服務癱瘓!
(3)如何保證緩存與數據庫雙寫時一致的問題
不一致指的是:數據庫的數據跟緩存的數據不一致
3。如果20萬用戶同時訪問一個熱點緩存,如何優化你的緩存架構
熱key:就是你的緩存集群中的某個key瞬間被數萬甚至十萬的並發請求打爆
大value:就是你的某個key對應的value可能有GB級的大小,導致查詢value的時候導致網絡相關的故障問題。