動態

詳情 返回 返回

軟件測試開發/全日制丨面試題:中間件-淘汰緩存還是更新緩存 - 動態 詳情

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

問題

你們的 Redis 使用的是淘汰緩存還是更新緩存,這兩者有什麼區別?請詳細説明

答案解析

首先,需要了解到在 Redis 中,緩存操作的讀與寫究竟是一個怎麼樣的流程

緩存操作流程-讀

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

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

緩存操作流程-寫

在使用 Redis 之後,緩存的更新通常來説有兩種方案:

  1. 淘汰緩存
  2. 更新緩存

什麼是淘汰緩存

淘汰緩存的過程為:

  1. 更新數據庫後,直接將緩存中的記錄刪除。
  2. 查詢數據時,就無法從緩存中獲取,只能從數據庫獲取。從數據庫獲取之後,同步更新緩存。
  3. 第二次查詢數據時,即可從緩存中讀取到最新的數據。

淘汰緩存的優點與缺點:

  • 優點:操作簡單,性能比較好
  • 缺點:淘汰之後下一次請求就會讀取數據庫,至少會出現一個 cache miss。

什麼是更新緩存

更新緩存的過程為:

  1. 由緩存的調用者,在更新數據庫的同時更新緩存。
  2. 查詢數據時,即可從緩存中讀取到最新的數據。

淘汰緩存的優點與缺點:

  • 優點:基本不會出現cache miss的情況。
  • 缺點:每次更新數據庫都更新緩存,比較影響性能。

總結:在實際工作中,具體使用淘汰緩存還是更新緩存應該視情況而定。大部分情況,修改數據成本會高於增加一次cache miss,因此應該選用淘汰緩存。

推薦

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 icecreamlj 頭像 vivo_tech 頭像 werbenhu 頭像 q_bit 頭像 kkkk11 頭像 hebendexiaomao 頭像 alibabawenyujishu 頭像 fiveyoboy 頭像 zhoutk 頭像 movingape 頭像 sorra 頭像 dotnetcore_5c7f68d071ec6 頭像
點贊 16 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.