Redis性能基準測試

基準環境

  • 機器:AWS EC2 c4.8xlarge(同機部署 Redis Server 與 ReJSONBenchmark 工具,通過網絡棧連接)
  • 測試工具:ReJSONBenchmark(Go 實現、可配置并發)
  • 模式:非管線(non-pipelined)
  • 版本:RedisJSON Preview(尚未完全優化)

基線對比:PING

工具并發吞吐 (req/s)平均延遲 (ms)99% 延遲 (ms)
redis-benchmark50140,587≤1≤1
ReJSONBenchmark16116,2920.140.21

洞察:Go 測試工具在 PING 下吞吐略低于 redis-cli,但延遲依舊亞毫秒級。

JSON 操作性能

測試場景操作吞吐 (req/s)平均延遲 (ms)
空字符串(2B)JSON.SET / JSON.GET80,277 / 92,1910.20 / 0.17
小對象(380B, pass-100.json)SET 根 / GET 根41,513 / 48,3740.38 / 0.33
GET 標量路徑94,8010.17
GET 子文檔81,6340.19
中等數組(1.4 KB)SET 根 / GET 根16,117 / 15,1940.99 / 1.05
GET 元素 / 子字段78K–99K~0.20
大對象(3.5 KB)SET 根 / GET 根14,239 / 8,3661.12 / 1.91
超大文檔(18 KB / 40 KB)SET 根 / GET 根 (18 KB)3,394 / 8914.71 / 17.92
SET 根 / GET 根 (40 KB)1,625 / 4439.84 / 36.08
數值運算NUMINCRBY / NUMMULTBY78,640 / 77,171~0.20

結論

  • 文檔越小,吞吐越高、延遲越低;
  • 部分路徑操作(標量、子文檔)性能遠超訪問整個根文檔;
  • 數值原子操作也能保持 >77K req/s 的高吞吐。

與 Server-Side Lua 腳本對比

  • 根級 SET/GET:RedisJSON、Lua(cjson/cmsgpack) 性能相近(80–90K req/s)。

  • 路徑級 SET/GET

    • RedisJSON:直接內存訪問,無需整體解碼,保持 >75K req/s 且延遲穩定;
    • Lua:每次都解碼整個對象,隨著文檔增大性能急劇下降(大文檔時 <20K req/s)。

洞察:RedisJSON 原生命令在局部更新/讀取場景下,解碼與操作開銷大幅低于基于腳本的實現。

小結

  1. 極低延遲:空字符串與小對象下,延遲普遍 <0.2 ms。
  2. 高吞吐量:簡單路徑查詢可達 ~100K req/s;數值運算也能維持 >75K req/s。
  3. 可擴展性:文檔體量增大時,根級操作延遲線性上升,但仍可滿足毫秒級需求;部分路徑訪問保持亞毫秒穩定。
  4. 優于腳本:相比 Lua 全文解碼,RedisJSON 的“就近解碼”帶來顯著性能與資源優勢。

通過本次基準,我們可以清晰看到 RedisJSON 在不同載荷與操作模式下的性能特性,為生產環境評估提供了可靠參考。

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

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

相關文章

XML外部實體注入與修復方案

XML外部實體注入&#xff08;XXE&#xff09;是一種嚴重的安全漏洞&#xff0c;攻擊者利用XML解析器處理外部實體的功能來讀取服務器內部文件、執行遠程請求&#xff08;SSRF&#xff09;、掃描內網端口或發起拒絕服務攻擊。以下是詳細解釋和修復方案&#xff1a;XXE 攻擊原理外…

解決高并發場景中的連接延遲:TCP 優化與隊頭阻塞問題剖析

你是否在高并發場景下遇到過這種情況&#xff1a;系統性能本來不錯&#xff0c;但在請求量大增的時刻&#xff0c;連接延遲暴漲&#xff0c;響應時間直線飆升&#xff0c;甚至整個服務都變得不可用&#xff1f;當你打開監控時&#xff0c;CPU、內存、帶寬都在正常范圍內&#x…

Web學習筆記4

CSS概述1、CSS簡介CSS&#xff0c;層疊樣式表&#xff0c;是一種樣式表語言&#xff0c;用以描述HTML的呈現內容的方式&#xff08;美化網頁&#xff09;。CSS書寫規則是&#xff1a;選擇器{屬性名&#xff1a;屬性值}的鍵值對CSS有三種引入方式&#xff0c;分別為&#xff1a;…

Spring AI 初學者指南:從入門到實踐與常用大模型介紹

作為 Java 開發者&#xff0c;當 AI 浪潮席卷而來時&#xff0c;如何在熟悉的 Spring 生態中快速擁抱大模型開發&#xff1f;Spring AI 的出現給出了答案。本文將從初學者視角出發&#xff0c;帶你了解 Spring AI 的核心概念、使用方法&#xff0c;并介紹與之搭配的常用大模型&…

C#自定義控件

1。C#中控件和組件的區別&#xff1a; 一般組件派生于&#xff1a;Component類&#xff0c;所以從此類派生出的稱之為組件。 一般用戶控件派生于:Control類或UserControl類&#xff0c;所以從該類派生出的稱之為用戶控件。 他們之間的關系主要是&#xff1a;UserControl繼承Con…

網絡資產測繪工具全景解析:七大平臺深度洞察

?一、資產測繪工具的核心價值?網絡資產測繪&#xff08;Cyber Asset Intelligence&#xff09;技術通過主動掃描與被動分析&#xff1a;實時發現全球暴露的網絡設備&#xff08;服務器、攝像頭、IoT設備&#xff09;自動化構建資產指紋庫&#xff08;操作系統/服務/框架版本&…

編程語言設計目的與側重點全解析(主流語言深度總結)

編程語言的設計本質上是對計算邏輯的形式化表達與工程約束的平衡&#xff0c;不同語言因目標場景、時代需求和技術哲學的差異&#xff0c;形成了獨特的設計范式。以下從系統級、應用級、腳本/動態、函數式、并發/安全等維度&#xff0c;選取10種最具代表性的編程語言&#xff0…

重學前端003 --- 響應式網頁設計 CSS 顏色

文章目錄文檔聲明head顏色模型div根據在這里 Freecodecamp 實踐&#xff0c;記錄筆記總結。 文檔聲明 在文檔頂部添加 DOCTYPE html 聲明 <!DOCTYPE html>head title 元素為搜索引擎提供了有關頁面的額外信息。 它還通過以下兩種方式顯示 title 元素的內容&#xff1a…

這個Pandas函數可以自動爬取Web圖表

Pandas作為數據科學領域鰲頭獨占的利器&#xff0c;有著豐富多樣的函數&#xff0c;能實現各種意想不到的功能。 作為學習者沒辦法一次性掌握Pandas所有的方法&#xff0c;需要慢慢積累&#xff0c;多看多練。 這次為大家介紹一個非常實用且神奇的函數-read_html()&#xff0…

vLLM與SGLang在自然語言處理領域的技術架構與性能對比研究

隨著大語言模型在工業界和學術界的廣泛應用&#xff0c;高效推理框架的選擇成為自然語言處理領域的關鍵挑戰。vLLM與SGLang作為當前最前沿的推理優化框架&#xff0c;分別通過創新的PagedAttention和RadixAttention機制展現了獨特的技術優勢。本文將系統對比兩大框架的核心架構…

樓宇自動化:Modbus 在暖通空調(HVAC)中的節能控制(二)

Modbus 在 HVAC 節能控制中的應用案例案例一&#xff1a;某商業建筑 HVAC 系統節能改造某大型商業建筑&#xff0c;總建筑面積達 5 萬平方米&#xff0c;涵蓋了購物中心、餐飲區和娛樂場所等多種功能區域 。改造前&#xff0c;其 HVAC 系統采用傳統的控制方式&#xff0c;設備之…

win10安裝Elasticsearch

1 啟動elasticsearch 下載地址&#xff1a;Download Elasticsearch | Elastic 雙擊elasticsearch.bat elasticsearch黑窗口啟動亂碼問題解決方案 到 config 文件下找到 jvm.options 文件 打開后 在文件末尾空白處 添加 -Dfile.encodingGBK 保存后重啟即可。 啟動后輸入&am…

[Meetily后端框架] Whisper轉錄服務器 | 后端服務管理腳本

第七章&#xff1a;Whisper轉錄服務器 歡迎回來&#xff01; 到目前為止&#xff0c;我們已經深入探索了"meeting-minutes"項目的"大腦"——Python后端。 我們已經了解了它如何通過后端API網關接收文本轉錄&#xff0c;使用摘要數據結構&#xff08;Pyd…

Azure-ADF 抽取數據

1,Azure 訪問地址 1,國際版 https://portal.azure.com/#homehttps://portal.azure.com/#home2,世紀互聯中國版 Microsoft Azure 由世紀互聯運營https://portal.azure.cn/2,創建資源組并且所有的后續組件都是再此資源下面創建。 3,創建Data Factory 工具 4,核心組件 1. 管…

django queryset 去重

在Django中&#xff0c;使用QuerySet時&#xff0c;如果你想要對查詢結果進行去重&#xff08;即去除重復的記錄&#xff09;&#xff0c;你可以使用幾種不同的方法。這里列出了一些常見的方法&#xff1a; 使用distinct() distinct()方法用于返回QuerySet中不重復的唯一對象。…

WIFI MTU含義 ,協商修改的過程案例分析

WIFI MTU含義 ,協商修改的過程案例分析 文章目錄 **WIFI MTU含義 ,協商修改的過程案例分析****一、WIFI MTU的含義****二、MTU協商修改的過程案例分析****1. TCP/IP協議中的MTU協商****2. 藍牙(BLE)中的MTU協商****3. 網絡設備配置中的MTU調整****三、協商修改的注意事項**…

記一次Android Studio編譯報錯:Execution failed for task ‘:app:compileDebugAidl‘

問題背景: android studio導入AIDL文件的時候編譯提示: Execution failed for task :app:compileDebugAidl. > A failure occurred while executing com.android.build.gradle.tasks.AidlCompile$AidlCompileRunnable > com.android.ide.common.process.ProcessEx…

selenium跳轉到新頁面時如何進行定位

在 Selenium 中&#xff0c;當你跳轉到新頁面&#xff08;例如通過點擊鏈接、提交表單或 JavaScript 重定向&#xff09;時&#xff0c;通常會遇到頁面加載或窗口切換的問題。為了在新頁面上繼續進行頁面定位操作&#xff0c;你需要確保以下幾點&#xff1a;? 1. 等待頁面加載…

QT——QComboBox組合框控件

QComboBox概述QComboBox是Qt框架中提供的組合框控件&#xff0c;它結合了按鈕和下拉列表的功能&#xff0c;允許用戶從預定義的選項列表中選擇一個或多個項目。基本特性特性描述顯示方式顯示當前選中項&#xff0c;點擊后展開下拉列表編輯能力可設置為可編輯或不可編輯項目類型…

CentOS 安裝jenkins筆記

1. 安裝 Java。目前一般jdk要求11以上&#xff0c;否則會報錯2. 手動添加 Jenkins 倉庫先創建一個專門的Jenkins文件夾&#xff1a;mkdir jenkins然后 執行 sudo curl -fsSL https://pkg.jenkins.io/redhat/jenkins.io.key -o /etc/pki/rpm-gpg/jenkins.io.key 然后&#xff0…