偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Redis 緩存如何出錯?

數(shù)據(jù)庫 Redis
當(dāng)緩存或數(shù)據(jù)庫中不存在 key 時,就會發(fā)生這種情況。應(yīng)用程序無法從數(shù)據(jù)庫中檢索相關(guān)數(shù)據(jù)來更新緩存。這個問題給緩存和數(shù)據(jù)庫都造成了很大的壓力。

緩存系統(tǒng)如何出錯?

下圖顯示了緩存可能出錯的 4 種典型情況及其解決方案。

01 雷群問題(Thurder Hurd)

當(dāng)緩存中的大量 key 同時過期時,就會出現(xiàn)這種情況。然后,查詢請求直接沖擊數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)庫超載。

有兩種方法可以緩解這一問題:

  1. 避免為 key 設(shè)置相同的過期時間,在配置中添加一個隨機數(shù);
  2. 只允許核心業(yè)務(wù)數(shù)據(jù)訪問數(shù)據(jù)庫,而在緩存恢復(fù)之前阻止非核心數(shù)據(jù)訪問數(shù)據(jù)庫。

02 緩存滲透(Cache Penetration)

當(dāng)緩存或數(shù)據(jù)庫中不存在 key 時,就會發(fā)生這種情況。應(yīng)用程序無法從數(shù)據(jù)庫中檢索相關(guān)數(shù)據(jù)來更新緩存。這個問題給緩存和數(shù)據(jù)庫都造成了很大的壓力。

要解決這個問題,有兩種建議。

  1. 為不存在的 key 緩存一個空值,避免對數(shù)據(jù)庫造成沖擊。
  2. 使用 bloom 過濾器先檢查 key 是否存在,如果 key 不存在,我們就可以避免對數(shù)據(jù)庫的訪問。

03 緩存崩潰(Cache Breakdown)

這與雷群問題類似。它發(fā)生在熱鍵過期時。大量請求會訪問數(shù)據(jù)庫。

解決方案:由于熱鍵占據(jù)了 80% 的查詢量,我們沒有為它們設(shè)置過期時間。

04 緩存崩潰(Cache Crash)

當(dāng)緩存崩潰時,所有請求都會進(jìn)入數(shù)據(jù)庫。

有兩種方法可以解決這個問題。

  1. 設(shè)置斷路器 (Circuit Breaker),當(dāng)緩存宕機時,應(yīng)用服務(wù)無法訪問緩存或數(shù)據(jù)庫。
  2. 為高速緩存建立一個集群,以提高高速緩存的可用性。
責(zé)任編輯:武曉燕 來源: ByteByteGo
相關(guān)推薦

2019-06-19 15:54:12

Redis緩存內(nèi)存

2018-09-12 19:46:53

數(shù)據(jù)庫MySQLRedis

2019-10-12 14:19:05

Redis數(shù)據(jù)庫緩存

2023-03-10 13:33:00

緩存穿透緩存擊穿緩存雪崩

2018-12-13 12:43:07

Redis緩存穿透

2021-06-05 09:01:01

Redis緩存雪崩緩存穿透

2023-10-04 19:43:38

2022-03-08 00:07:51

緩存雪崩數(shù)據(jù)庫

2015-04-22 14:41:04

云遷移Redis緩存數(shù)據(jù)模型調(diào)整

2023-04-14 07:34:19

2020-03-16 14:57:24

Redis面試雪崩

2021-08-05 16:10:03

進(jìn)程緩存緩存服務(wù)Java

2024-04-08 11:25:10

Redis緩存策略

2024-01-08 09:43:20

2023-12-06 13:38:00

Redis緩存穿透緩存擊穿

2023-09-24 14:35:43

Redis數(shù)據(jù)庫

2010-03-24 18:47:43

Nginx緩存

2024-01-10 14:45:46

Redis數(shù)據(jù)庫存儲

2020-01-10 15:42:13

SpringBootRedis數(shù)據(jù)庫

2023-01-31 08:37:11

緩存穿透擊穿
點贊
收藏

51CTO技術(shù)棧公眾號