目錄
1.redis做快取,會有哪些問題?
2.什麼是快取穿透?如果出現,解決方案是什麼?
3.什麼是快取擊穿?如果出現,解決方案是什麼?
4.什麼是快取雪崩?如果出現,解決方案是什麼?
5.快取穿透,快取擊穿,快取崩潰三者的區別和聯絡是什麼? 總結
redis做快取可能會出現快取穿透, 快取擊穿,快取雪崩問題。問題程度有低到高。快取穿透最輕,快取雪崩最重。
使用者請求的資料在快取中不存在,在資料庫中也不存在,導致每次請求都去資料庫中查詢,導致資料庫服務壓力大。
解決方案:
1.引數校驗
2.將無效的key放入快取。可以解決高頻,固定key的查詢,不能解決key隨機不存在的問題
3.增加布隆過濾器。可以解決key隨機不存在的問題。布隆過濾器,key不存在一定不存在,key存在不一定存在。
單個key快取失效,大量請求過來,讀快取沒有讀到,全部打到資料庫,資料庫壓力大,或者資料庫崩潰。
解決方案:
1.資料過期,讀寫資料加鎖
2.熱點資料永不過期(1.不設定過期時間 2.通過指令碼定時重新整理過期時間)
大量的key同時失效,導致大量的請求同時訪問快取,快取查詢不到,去資料庫查詢(資料庫可能查詢到也可能查詢不到),資料庫壓力大或崩潰。
解決方案:
1.對key的過期時間增加隨機值
2.如果redis掛掉,可以使用redis 集群
快取穿透是單個請求,快取擊穿和快取雪崩是多個請求。快取擊穿是單個key失效,快取雪崩是多個key同時失效。
redis做快取使用一定要考慮快取穿透,快取擊穿,快取雪崩的原理和解決方案。
redis常見面試題
為什麼redis單執行緒還是這麼快?1.絕大部分的請求是純粹的記憶體操作 非常快速 2.採用單執行緒,避免了不必要的額競爭條件和上下文切換,單執行緒指的是網路請求模組使用的是乙個執行緒,即乙個執行緒處理了所有網路請求。3.非阻塞i o i o多路復用,這樣提高了redis的吞吐量,多路 指的是多個網...
Redis常見面試題
5.2.1 redis 是什麼?常 的應用場景?redis是乙個快取資料庫,是乙個非關係型資料庫的鍵值儲存資料庫 應用場景 內容快取,主要用於處理大量資料的高訪問負載 日誌系統5.2.2 redis 常 資料型別有哪些?各自有什麼應用場景?string 儲存的資料是普通的鍵值對可用string來進行...
常見面試題(Redis)
redis redis支援的資料型別?string字串 hash 雜湊 list 列表 set 集合 zset sorted set 有序集合 如何解決快取雪崩 我們先說一下什麼是快取雪崩吧 簡單來說就是redis掛掉了,請求全部走資料庫。還有就是 如果快取資料設定的過期時間是相同的,並且redis...