Redis高級功能-1、高併發基本概述

来源:https://www.cnblogs.com/schangxiang/archive/2019/08/21/11386579.html
-Advertisement-
Play Games

1、可能的問題 要將redis運用到工程項目中,只使用一臺redis是萬萬不能的,原因如下: (1)從結構上,單個redis伺服器會發生單點故障,並且一臺伺服器需要處理所有的請求負載,壓力較大。 (2)從容量上,單個redis伺服器記憶體容量有限,就算一臺redis伺服器記憶體容量為256g,也不能將所 ...


1、可能的問題

       要將redis運用到工程項目中,只使用一臺redis是萬萬不能的,原因如下:

(1)從結構上,單個redis伺服器會發生單點故障,並且一臺伺服器需要處理所有的請求負載,壓力較大。

(2)從容量上,單個redis伺服器記憶體容量有限,就算一臺redis伺服器記憶體容量為256g,也不能將所有內容都用作redis存儲記憶體,一般情況下,單台redis最大使用記憶體不應該超過20g

2、基本概念

2.1. 高可用

“高可用”(High Availability)用來描述一個系統經過專門的設計,從而減少停工時間,而保持其服務的高可用性。

高可用就是系統一直都能用,即使一臺redis掛了,系統還是能用別的redis使用。

2.2. 高併發

         高併發是指通過設計保證系統能夠同時並行處理很多請求。

         高併發指標有 響應時間、吞吐量、每秒查詢率QPSQuery Per Second),併發用戶等。

         響應時間:系統對請求作出響應的時間,例如系統處理一個http請求需要200ms,這個200ms就是系統響應時間。

         吞吐量:單位時間內處理的請求數量。

         QPS:每秒響應請求數。在互聯網領域,這個指標和吞吐量區分的不明顯

         併發用戶數:同時承載正常使用系統功能的用戶數量。例如一個即時通訊系統,同時線上數量一定程式上代表了系統的併發用戶數。

 

3、提升系統的併發能力

      提升系統併發能力的方式,方法論中有兩種:垂直擴展(Scale Up)和水平擴展(Scale Out

3.1. 垂直擴展

       垂直擴展:提升單機處理能力,說白就是提升單兵作戰能力。

(1)增加單機硬體性能。例如增加CPU核數,升級更好的網卡如萬兆,升級更好的硬碟如SSD,擴充硬碟容量如2T,擴充系統記憶體如128G(都是用錢來解決的問題,沒啥技術含量)

(2)提升單機架構性能。例如使用Cache來減少IO次數,使用非同步來增加單服務吞吐量,使用無鎖數據結構來減少響應時間。

 

   如果預算不是問題,建議使用“增強單機硬體性能”的方式提升系統併發能力。因為這個階段,公司的戰略往往是發展業務搶時間,而這種方式是最快的方法。

 

   總結:不管是提升單機硬體性能,還是提升單機架構性能,都有一個致命的不足:單機性能是有極限的。所有互聯網分散式架構設計高併發終極解決方案還是水平擴展。

3.2. 水平擴展

         水平擴展:只要增加伺服器數量,就能線性擴展系統性能。水平擴展對系統架構的設計是有要求的,難點在於:如何在架構各層進行可水平擴展的設計。

         說白就是搞人海戰術。。。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 查看zabbix_agentd.log時出現下列錯誤 [root@4gronghe_110 ~]# tail /var/log/zabbix/zabbix_agentd.log 1266:20140523:063554.157 no active checks on server [127.0.0. ...
  • 什麼是虛擬機? 虛擬化是在Host操作系統之上導入Guest操作系統的技術。這種技術最初是一個啟示,因為它允許開發人員在同一主機上運行的不同虛擬機中運行多個操作系統。這消除了對額外硬體資源的需求。 虛擬機或虛擬化的優點是: 多個操作系統可以在同一臺機器上運行 在出現故障的情況下,維護和恢復很容易 由 ...
  • 總結: 遇到的問題:No support for locale: zh_CN.utf8 可能的解決方法:1.sudo dpkg-reconfigure locale (重新配置?) 2.上一步失敗,提示locale 未安裝,於是安裝之: sudo dpkg-reconfigure locale 3. ...
  • (一) 軟體介紹由俄羅斯人lgor Sysove開發,為開源軟體。支持高併發:支持幾萬併發連接(特別是靜態小文件業務環境) 資源消耗少:在3萬併發連接下開啟10個Nginx線程消耗記憶體不到200M 支持非同步網路I/O事件模型epoll(Linux2.6+) apache(select)功能介紹 1. ...
  • SPI協議簡述 SPI,是英語Serial Peripheral interface的縮寫,顧名思義就是串列外圍設備介面。由Motorola首創。SPI介面主要應用在 EEPROM,FLASH,實時時鐘,AD轉換器,還有數字信號處理器和數字信號解碼器之間。SPI,是一種高速的,全雙工,同步的通信匯流排 ...
  • 一、安裝時間同步工具 二、同步時間 1、修改時區 2、同步時間 3、寫入硬體時間 4、自動時間同步 ...
  • 在 Linux 中,如何管理用戶、管理許可權?請看下文,謝謝配合。 ...
  • 在 Linux 中,有三種安裝軟體的方式,分別是 RPM 包安裝、YUM 源安裝、源代碼編譯安裝。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...