Redis常見問題描述
1 Redis持久化機制:Redis是一個支持持久化的內存數據庫,通過持久化機制把內存中的數據同步到硬盤文件來保證數據持久化。當Redis重啟后通過把硬盤文件重新加載到內存,就能達到恢復數據的目的。
2 緩存雪崩、緩存穿透、緩存預熱、緩存更新、緩存降級等問題
緩存雪崩:由于原有緩存失效,新緩存未到期間,所有原本應該訪問緩存的請求都去查詢數據庫了,而對數據庫CPU和內存造成巨大壓力,嚴重的會造成數據庫宕機。從而形成一系列連鎖反應,造成整個系統崩潰。
解決辦法:失效時間分散;加鎖,避免大量的并發請求落到底層存儲系統上。
緩存穿透:繞過緩存直接查數據庫,這也是經常提的緩存命中率問題。
緩存預熱:系統上線后,將相關的緩存數據直接加載到緩存系統。這樣就可以避免在用戶請求的時候,先查詢數據
庫,然后再將數據緩存的問題!用戶直接查詢事先被預熱的緩存數據。
緩存更新:自定義的緩存淘汰,常見的策略有兩種:
(1)定時去清理過期的緩存;
?。?)當有用戶請求過來時,再判斷這個請求所用到的緩存是否過期,過期的話就去底層系統得到新數據并更新緩存。兩者各有優劣。
緩存降級:對于不重要的緩存數據,可以采取服務降級策略,例如一個比較常見的做法就是,Redis出現問題,不去數據庫查詢,而是直接返回默認值給用戶。
3 單線程的redis為什么這么快
(1)純內存操作
(2)單線程操作,避免了頻繁的上下文切換
(3)采用了非阻塞I/O機制
4 Redis事務功能是通過MULTI、EXEC、DISCARD和WATCH 四個原語實現的
Redis會將一個事務中的所有命令序列化,然后按順序執行。

浙公網安備 33010602011771號