redis的常見問題

2022-05-08 06:51:07 字數 504 閱讀 5491

1.快取和資料庫雙寫一致性問題

一致性問題還可以再分為最終一致性和強一致性。

資料庫和快取雙寫,就必然會存在不一致的問題。

前提是如果對資料有強一致性要求,不能放快取。我們所做的一切,只能保證最終一致性。

另外,我們所做的方案從根本上來說,只能降低不一致發生的概率。因此,有強一致性要求的資料,不能放快取。

首先,採取正確更新策略,先更新資料庫,再刪快取。其次,因為可能存在刪除快取失敗的問題,提供乙個補償措施即可,例如利用訊息佇列。

2.快取雪崩問題

3.快取擊穿問題

4.快取的併發競爭問題

假設時間戳如下:

系統 a key 1

系統 b key 1

系統 c key 1

那麼,假設系統 b 先搶到鎖,將 key1 設定為。接下來系統 a 搶到鎖,發現自己的 valuea 的時間戳早於快取中的時間戳,那就不做 set 操作了,以此類推。其他方法,比如利用佇列,將 set 方法變成序列訪問也可以。

redis常見問題

在redis命令列執行info clients 得到類似下面的結果 connected clients 357 client longest output list 0client biggest input buf 0blocked clients 0redis連線數過多的問題可以參考 處理red...

redis常見問題

redis使用中可能出現的一些問題 1.快取穿透 快取穿透是指查詢乙個一定不存在的資料,由於快取是不命中時需要從db查詢,查不到資料則不寫入快取,這將導致這個不存在的資料每次請求都要到資料庫查詢,從而造成快取穿透。解決辦法 持久層查詢不到就快取空結果,查詢時先判斷快取中是否exists key 如果...

Redis常見問題

1.如何解決快取雪崩?2.如何解決快取穿透?3.如何保證快取與資料庫雙寫時一致的問題?1.1 什麼是快取雪崩?回顧一下我們為什麼要用快取 redis 現在有個問題,如果我們的快取掛掉了,這意味著我們的全部請求都跑去資料庫了。我們都知道redis不可能把所有的資料都快取起來 記憶體昂貴且有限 所以re...