本文轉自測試人社區,作者AD
原文鏈接:https://ceshiren.com/t/topic/23421
問題
你們的 Redis 使用的是淘汰緩存還是更新緩存,這兩者有什麼區別?請詳細説明
答案解析
首先,需要了解到在 Redis 中,緩存操作的讀與寫究竟是一個怎麼樣的流程
緩存操作流程-讀
在添加 Redis 的之後,後端的查詢(讀)流程是:
- 請求後端服務。
- 經過邏輯處理後,先去緩存(Redis)中進行查詢,如果查到,則直接返回。
- 如果沒有查到信息,則直接向數據庫進行查詢,查詢到之後,數據庫會講數據信息同步到緩存(Redis)中,以便下次查詢。
緩存操作流程-寫
在使用 Redis 之後,緩存的更新通常來説有兩種方案:
- 淘汰緩存
- 更新緩存
什麼是淘汰緩存
淘汰緩存的過程為:
- 更新數據庫後,直接將緩存中的記錄刪除。
- 查詢數據時,就無法從緩存中獲取,只能從數據庫獲取。從數據庫獲取之後,同步更新緩存。
- 第二次查詢數據時,即可從緩存中讀取到最新的數據。
淘汰緩存的優點與缺點:
- 優點:操作簡單,性能比較好
- 缺點:淘汰之後下一次請求就會讀取數據庫,至少會出現一個 cache miss。
什麼是更新緩存
更新緩存的過程為:
- 由緩存的調用者,在更新數據庫的同時更新緩存。
- 查詢數據時,即可從緩存中讀取到最新的數據。
淘汰緩存的優點與缺點:
- 優點:基本不會出現cache miss的情況。
- 缺點:每次更新數據庫都更新緩存,比較影響性能。
總結:在實際工作中,具體使用淘汰緩存還是更新緩存應該視情況而定。大部分情況,修改數據成本會高於增加一次cache miss,因此應該選用淘汰緩存。
推薦
Python全棧開發與自動化測試開發班
由淺入深實戰進階,從小白到高手
以Python全棧開發為基礎,深入教授自動化測試技能,為學員打造全面的技術能力。通過系統學習和實際項目實戰,學員將具備在職場中脱穎而出的競爭力。不僅能夠靈活運用Python進行開發,還能夠保障項目質量通過自動化測試手段。這是一個全面提升職業競爭力的機會。
課程詳情
Python開發必備基礎技能與項目實戰
Pvthon 編程語言/算法和數據結構/面向對象編程Web後端開發/前端開發/測試管理平台項目實戰
人工智能ChatGPT實戰
人工智能輔助學習各種開發和測試技能/Pytorch深度學框架/平台開發實戰
數據分析與自動化辦公
數據採集/Pandas與數據處理技術/ECharts與數據可視化技術/爬蟲實戰/自動化辦公/批量文件處理
UI自動化測試與高級項目實戰
Web自動化測試/App自動化測試/ PageObject設計模式
接口自動化測試
接口協議分析/Mock實戰/服務端接口測試
性能測試
性能測試流程與方法/JMeter 腳本參數化/Grafana監控系統搭建
簡歷指導與模擬面試
1V1簡歷指導/模擬真實面試/測試開發崗面試全攻略名企私教服務 名企專家1v1輔導/行業專家技術指導/針對性解決工作難題/績效提升輔導與晉升覆盤
課程亮點
名企私教服務 先學習後付費 高額獎學金
專屬社羣+晚自習在線答疑
5V1全方位輔導作業+考試強化學習效果
簡歷修改 模擬面試 就業內推 面試覆盤
福利一: 測試開發精品課免費學
福利二:免費領取技能圖譜&大廠面試題合集