高性能架構模式——高性能緩存架構

目錄

    • 一、引入前提
    • 二、緩存架構的設計要點
      • 2.1、緩存穿透
        • 2.1.1、緩存穿透第一種情況:存儲數據不存在
        • 2.1.2、緩存穿透第二種情況:緩存數據生成耗費大量時間或者資源
      • 2.2、緩存雪崩
        • 2.2.1、解決緩存雪崩的第一種方法:更新鎖機制
        • 2.2.2、解決緩存雪崩的第二種方法:后臺更新機制
      • 2.3、緩存熱點
        • 2.3.1、緩存熱點的解決方法
    • 三、緩存架構的實現方式

本文來源:極客時間vip課程筆記

一、引入前提

  • 雖然我們可以通過各種手段來提升存儲系統的性能,但在某些復雜的業務場景下,單純依靠存儲系統的性能提升不夠的,典型的場景有:

  • 經過復雜運算后得出的數據,存儲系統無能為力

    例如,一個論壇需要在首頁展示當前有多少用戶同時在線,如果使用 MySQL 來存儲當前用戶狀態,則每次獲取這個總數都要“count(*)”大量數據,這樣的操作無論怎么優化 MySQL,性能都不會太高。如果要實時展示用戶同時在線數,則 MySQL 性能無法支撐。

  • 讀多寫少的數據,存儲系統有心無力

    例如,一個明星發一條微博,可能幾千萬人來瀏覽。如果使用 MySQL 來存儲微博,用戶寫微博只有一條 insert 語句,但每個用戶瀏覽時都要 select 一次,即使有索引,幾千萬條 select 語句對 MySQL 數據庫的壓力也會非常大

  • 緩存就是為了彌補存儲系統在這些復雜業務場景下的不足,其基本原理是將可能重復使用的數據放到內存中,一次生成、多次使用,避免每次使用都去訪問存儲系統。

  • 緩存能夠帶來性能的大幅提升,以 Memcache 為例,單臺 Memcache 服務器簡單的 key-value 查詢能夠達到 TPS 50000 以上,其基本的架構是:
    在這里插入圖片描述

  • 緩存雖然能夠大大減輕存儲系統的壓力,但同時也給架構引入了更多復雜性。架構設計時如果沒有針對緩存的復雜性進行處理,某些場景下甚至會導致整個系統崩潰。

二、緩存架構的設計要點

2.1、緩存穿透

  • 緩存穿透

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/89290.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/89290.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/89290.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ubuntu+windows雙系統恢復

文章目錄前言一、恢復windows1.直接在grub命令行輸入exit退出2.手動查找windows引導文件先ls列出所有磁盤和分區查找各個分區是否包含引導文件設置引導分區以及引導文件路徑啟動windows二、在windows系統下刪除Ubuntu殘留引導文件三、準備ubuntu系統引導盤四、安裝ubuntu系統五…

使用Dify構建HR智能助理,深度集成大模型應用,賦能HR招聘管理全流程,dify相關工作流全開源。

HR智能助理系統 📋 項目概述 HR智能助理系統是一個基于AI技術的人力資源管理平臺,旨在通過智能化工具提升招聘效率,優化候選人評估流程,并提供專業的面試方案生成服務。 🎯 核心價值 提升招聘效率60%:自動化…

PowerBI實現僅在需要圖表時顯示圖表

PowerBI實現僅在需要圖表時顯示圖表實現效果點擊維度前:點擊維度后:實現步驟第一步,先創建一個矩陣表和一個柱形圖第二步,添加一個新卡片圖第三步,創建文本度量值Text "? 選擇一個地區"第四步,創…

信息收集知識總結

信息收集 在信息收集中,需要收集的信息:目標主機的DNS信息、目標IP地址、子域名、旁站和C段、CMS類型、敏感目錄、端口信息、操作系統版本、網站架構、漏洞信息、服務器與中間件信息、郵箱、人員、地址等。 域名信息收集 拿到公司名或者一個域名&…

工作第一步建立連接——ssh

照本宣科 SSH(Secure Shell,安全外殼協議)是一種用于在不安全網絡上進行安全遠程登錄和實現其他安全網絡服務的協議.功能主要是遠程登陸和文件傳輸(使用scp) 為了建立 SSH 遠程連接,需要兩個組件&#xf…

Markdown變身Word,解鎖格式轉換新姿勢

目錄一、引言二、在線轉換工具使用法2.1 工具推薦2.2 操作步驟2.3 優缺點分析三、文本編輯器的內置功能或插件3.1 適用編輯器列舉3.2 以 Visual Studio Code 為例的操作流程3.3 優勢說明四、使用專門的轉換軟件4.1 Pandoc 軟件介紹4.2 安裝步驟4.3 命令行轉換操作五、編程腳本實…

MR 處于 WIP 狀態的WIP是什么

WIP是什么 在MR(Merge Request 或代碼合并請求)中,WIP 是"Work In Progress" 的縮寫,意思是“正在進行中”或“在制品”。當一個MR 被標記為WIP,通常表示它尚未準備好被合并,可能還在開發中&…

機器學習-線性回歸模型和梯度算法

1. 線性回歸模型1.1 線性回歸模型線性回歸模型:將數據擬合成一條直線。作用:預測數字作為輸出。例子:房子的大小與房價的估計(圖表)(數據表)1.2 訓練集訓練集:用于訓練模型的數據集訓…

時序預測 | Matlab代碼實現VMD-TCN-GRU-MATT變分模態分解時間卷積門控循環單元多頭注意力多變量時序預測

預測效果代碼功能 代碼主要功能 該代碼實現了一個變分模態分解時間卷積門控循環單元多頭注意力多變量時間序列預測模型,核心功能為: 使用VMD(變分模態分解)將原始信號分解為多個IMF分量對每個IMF分量構建TCN-GRU-MATT混合神經網絡…

HTML5 離線存儲

HTML5 離線存儲(通常指 Application Cache)是早期用于實現 Web 應用離線訪問的技術,但由于其設計缺陷已被廢棄。現代 Web 開發中,取而代之的是更強大的 Service Worker Cache API 方案(屬于 Progressive Web Apps 技術…

JavaScript 性能優化實戰:深入性能瓶頸,精煉優化技巧與最佳實踐

前言 現代前端開發,不僅要“能跑”,更要“跑得快”。在用戶體驗為王的時代,JavaScript 性能優化已經成為前端工程師的必修課。 為什么要關注 JavaScript 性能 加載緩慢 → 用戶流失卡頓滯后 → 交互體驗崩潰資源浪費 → 設備電量與內存被吞…

文心4.5開源背后的戰略棋局:百度為何選擇All in開放?

文章目錄引言:一場顛覆AI行業格局的孤注國內開源模型的崛起與威脅國際競爭格局的重塑1.技術維度:開源是突破模型性能瓶頸的“加速器”1.1 閉源模型的“內卷化”困境1.2 文心4.5的開源技術架構:從“黑箱”到“樂高”1.2.1文心4.5的技術創新1.2…

SAP學習筆記 - 開發46 - RAP開發 Managed App Metadata Extension 2 - Booking_M,BookSuppl_M

上一章講了 RAP開發中,New Service Definition,Metadata Extension,在Metadata 文件中 復習了 lineItem,selectionField,Search,ObjectModel,Value Help,headerInfo 等內容。 SAP學…

# Win11開機卡死?無法進入登錄界面?3招強制進安全模式,快速修復系統

Win11開機卡死?無法進入登錄界面?3招強制進安全模式,快速修復系統一、問題描述: 當你的win11電腦開機后卡在圖片界面就死機,無法進入登錄界面,不顯示windows徽標,不能正常啟動,可能的…

快捷支付與網關支付:兩種主流支付方式的深度解析

在當今數字化支付時代,快捷支付和網關支付作為兩種主流的電子支付方式,為消費者和商家提供了多樣化的支付選擇。本文將深入探討這兩種支付方式的區別、適用場景及各自的優劣勢,幫助您更好地理解現代支付生態。一、快捷支付:便捷高…

【WRFDA數據教程第一期】LITTLE_R 格式詳細介紹

目錄LITTLE_R 格式概述LITTLE_R 的結構1-Header Record 詳解:觀測的“身份證”2-Data Record:觀測數據本體3-Ending Record:終止標志4-Tail Integers:尾部校驗字段另-Missing Values(缺測值處理)Mandatory,…

一文讀懂循環神經網絡—從零實現長短期記憶網絡(LSTM)

目錄 一、遺忘門(Forget Gate):決定 “該忘記什么” 二、輸入門(Input Gate):決定 “該記住什么新信息” 三、輸出門(Output Gate):決定 “該輸出什么” 四、候選記憶…

FreeRTOS之鏈表關鍵數據結構和函數操作接口-1

FreeRTOS之鏈表操作相關接口1 FreeRTOS源碼下載地址2 任務控制塊TCB2.1 任務控制塊TCB2.1.1 任務控制塊的關鍵成員2.1.2 TCB 的核心作用2.2 ListItem_t2.3 List_t3 函數接口3.1 vListInitialise3.2 vListInitialiseItem1 FreeRTOS源碼下載地址 https://www.freertos.org/ 2 …

OpenVela之 Arch Timer 驅動框架使用指南

一、概述 在嵌入式系統開發中,定時器是實現任務調度、精確延時等功能的核心組件。Arch Timer 作為基于 Timer Driver 實現的間隔定時器,在系統調度中扮演著重要角色。本文將全面介紹 Arch Timer 驅動框架,從基本概念到實際應用,幫…

AAC編解碼

AAC(Advanced Audio Coding,高級音頻編碼)是一種基于心理聲學原理的有損音頻編解碼技術,廣泛應用于流媒體、數字廣播、移動音頻等場景。其編解碼流程圍繞 “保留人耳可感知信息、去除冗余” 設計,分為編碼(…