3 面試常見問題 redis擊透,擊穿,雪崩

2021-10-07 08:04:29 字數 811 閱讀 7534

擊透, 擊穿, 雪崩都在redis找不到

擊透是redis沒起作用,

擊穿是單個key(熱點key)發生高併發 導致資料庫崩潰,

雪崩是多個key發生高併發導致資料庫崩潰

redis擊透:

redis快取和資料庫都不存在這個key時, redis就沒起作用了, 這就叫擊透

解決辦法:

先從redis獲取, 沒獲取到, 就從資料庫獲取, 在資料庫也沒有獲取到時,

可以把這個key儲存在redis, 他的value可以是字串"沒有這個資料",

下次使用者又來請求這個key, 就會從redis獲取了

(不過要是後面資料庫又有了這個key的話, 查出來的結果就不對了, 所以還是要每隔一段時間去查一下資料庫, 然後更新這個key的value)

redis擊穿:

redis對於那些hot key, 也就是熱點key, 他可能有段時間突然失效了, 這時請求量很多(熱點key嘛), 大量請求訪問資料庫, 資料庫可能就崩了

解決辦法:

對於熱點key, 同一時間訪問這個key的請求很多,

要是在redis獲取不到, 就加乙個鎖,

鎖裡面在加乙個判斷, 從redis獲取看有沒有這個key, 有就直接返回,沒有就從資料庫獲取

這樣的話,

第乙個執行緒進入鎖邏輯, 發現redis沒有, 就會從資料庫獲取, 然後把這個key儲存在redis,

第二個執行緒進來時, 進入判斷邏輯發現redis裡面已經有這個key了,就會從redis獲取, 這樣的話訪問資料庫的次數會少很多, 效能比較好

Redis 面試常見問題

redis常見問題 為什麼使用redis 效能和併發 分布式鎖還有其他中介軟體可以代替 使用redis有什麼缺點 單執行緒的redis問什麼這麼快 redis的資料型別,以及每種資料型別的使用場景 redis 的過期策略以及記憶體淘汰機制 redis 採用定期刪除 惰性刪除策略 採用定期刪除 惰性刪...

redis面試常見問題

系統哪些場景用到了快取?商品的資訊,其實變動不大,一般一天更新一次,但是訪問量又比較大 加快取後,利用快取提高了效能 如果後續資料變化後,系統修改了資料庫的同時,更新下快取就ok了 快取如何實現高併發 先查快取,如果快取有資料,查快取,沒有快取查資料庫,這樣可能可以將每秒4000個 請求的高併發 降...

面試 Redis面試常見問題總結

redis採用的是基於記憶體的採用的是單程序單執行緒模型的kv資料庫,由c語言編寫。官方提供的資料是可以達到100000 的qps。這個資料不比採用單程序多執行緒的同樣基於記憶體的kv資料庫memcached差。redis快的主要原因是 完全基於記憶體 資料結構簡單,對資料操作也簡單 使用多路 i ...