Stories

Detail Return Return

軟件測試開發/全日制丨中間件-redis擊穿、穿透區別,如何設計用例及測試 - Stories Detail

本文轉自測試人社區,作者AD
原文鏈接:https://ceshiren.com/t/topic/23163

Redis 的基本概念

在沒有添加 Redis 的時候,後端的查詢流程是:

  1. 用户訪問頁面。
  2. 請求後端服務。
  3. 經過邏輯處理後,去數據庫查詢信息。

在添加 Redis 的之後,後端的查詢流程是:

  1. 用户訪問頁面。
  2. 請求後端服務。
  3. 經過邏輯處理後,先去緩存(Redis)中進行查詢,如果查到,則直接返回。
  4. 如果沒有查到信息,則直接向數據庫進行查詢,查詢到之後,數據庫會講數據信息同步到緩存(Redis)中,以便下次查詢。

什麼是擊穿

當 Redis 某個熱 key(比如首頁廣告)過期或者因為某些異常原因導致於無法從緩存中獲取,導致大量的併發訪問數據庫而崩潰。

舉個例子,比如雙十一活動中,大量用户同時會查詢首頁的某個廣告服務,正常查詢流程中,我們的服務會直接在緩存中進行查詢,查到了之後,返回給用户。

但是假設在這個過程中,這個廣告服務的 key 過期,即這個緩存失效了,那麼就會有大量的併發請求直接打到數據庫中,導致數據庫崩潰。

如果要復現這個測試場景,可以通過如下的測試步驟進行復現:

  1. 獲取熱 key 的列表(與運維溝通後獲取)。
  2. 模擬熱 key 失效的場景(比如登陸 Redis,直接將熱 key 刪除)。
  3. 查看研發是否有對應的容錯機制(降級或熔斷),從而能保證主要服務的正常運行。

什麼是穿透

緩存穿透就是指:用户不斷髮起請求緩存和數據庫中都沒有的數據。

在正常的請求過程中,如果在緩存(Redis)中沒有查到信息,則直接向數據庫進行查詢,查詢到之後,數據庫會講數據信息同步到緩存(Redis)中,以便下次查詢。

如果是緩存穿透的場景,比如傳一個用户 id 為-1,這個用户 id 在緩存裏面是肯定不存在的,因為每次請求數據庫中也沒有對應的數據信息,那麼數據庫也就不會同步到緩存(Redis)中,所以就會導致,每一次的請求,都會直接打到數據庫上,導致數據庫崩潰。

如果要復現這個測試場景,可以通過如下的測試步驟進行復現:

  1. 不停訪問對應服務的接口,傳遞一個不存在的數據的查詢請求。
  2. 查看研發是否有對應的容錯機制,從而能保證不會有大量的請求打在數據庫上。

推薦

Python全棧開發與自動化測試開發班

由淺入深實戰進階,從小白到高手

以Python全棧開發為基礎,深入教授自動化測試技能,為學員打造全面的技術能力。通過系統學習和實際項目實戰,學員將具備在職場中脱穎而出的競爭力。不僅能夠靈活運用Python進行開發,還能夠保障項目質量通過自動化測試手段。這是一個全面提升職業競爭力的機會。

課程詳情

Python開發必備基礎技能與項目實戰

Pvthon 編程語言/算法和數據結構/面向對象編程Web後端開發/前端開發/測試管理平台項目實戰

人工智能ChatGPT實戰

人工智能輔助學習各種開發和測試技能/Pytorch深度學框架/平台開發實戰

數據分析與自動化辦公

數據採集/Pandas與數據處理技術/ECharts與數據可視化技術/爬蟲實戰/自動化辦公/批量文件處理

UI自動化測試與高級項目實戰

Web自動化測試/App自動化測試/ PageObject設計模式

接口自動化測試

接口協議分析/Mock實戰/服務端接口測試

性能測試

性能測試流程與方法/JMeter 腳本參數化/Grafana監控系統搭建

簡歷指導與模擬面試

1V1簡歷指導/模擬真實面試/測試開發崗面試全攻略名企私教服務 名企專家1v1輔導/行業專家技術指導/針對性解決工作難題/績效提升輔導與晉升覆盤

課程亮點

名企私教服務 先學習後付費 高額獎學金

專屬社羣+晚自習在線答疑

5V1全方位輔導作業+考試強化學習效果

簡歷修改 模擬面試 就業內推 面試覆盤

image.png

福利一: 測試開發精品課免費學

image.png

福利二:免費領取技能圖譜&大廠面試題合集

image.png

e4de1166c0b6a944f3fe30fdd71e77f.png

user avatar youqingyouyidedalianmao Avatar yuanjihua_5d954fd2a3238 Avatar fengyan_60cea4fbda03d Avatar xingfendexiyang Avatar leoyi Avatar k8scat Avatar weirdo_67190d70053aa Avatar tong_6816038415d24 Avatar
Favorites 8 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.