1.緩存雪崩:緩存掛了,全部請求直接打到數據庫了redis
例如:redis掛了,查詢數據的時候發現redis不可用,全部請求直接打到數據庫了數據庫
解決辦法:1.緩存集羣高可用,2首先本地一級緩存,其次redis二級緩存,最後數據庫緩存
2.緩存擊穿:全部請求在緩存中沒有找到數據,直接打到數據庫了隊列
例如:查詢數據的時候,發現redis中沒有,再請數據庫也沒有的狀況內存
解決辦法:1.雙重驗證,2,將查詢的空數據也寫入到緩存中並設置一個過時時間集羣
3.緩存一致性問題(內存+數據庫)高可用
查詢數據邏輯:先查緩存,緩存沒有則查詢數據庫,將返回數據寫入到緩存,並返回給調用方請求
修改數據邏輯:先刪除緩存中數據,再插入或更新數據庫數據
數據強一致性:讀和寫數據的邏輯放入隊列中串行執行(代碼已經實現,用於工做實戰中了)查詢