redis 快取問題常見面試題

2021-10-06 16:05:14 字數 837 閱讀 1444

目錄

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...