【Redis】Redis 關于 BigKey 的實踐規約

目錄

一、BigKey 的概念

1.1 普通 key 的設計規則

1.2 BigKey 的定義

1.3 BigKey 存在的問題

二、BigKey 的發現與解決方案

第一種方式:redis-cli --bigkeys

第二種方式:scan掃描

第三種方式:第三方工具

第四種方式:網絡監控


一、BigKey 的概念

1.1 普通 key 的設計規則

遵循的基本格式:[業務名稱]:[數據名]:[id](login:user:1)

key 的長度建議:長度不超過 44 字節(否則會占用更多內存)

key 的設計建議:建議盡量不要包含特殊字符

1.2 BigKey 的定義

BigKey 通常以 Key 的大小和 Key 中成員的數量來綜合判定,例如:

  • Key 本身的占用內存過大:一個 String 類型的 Key,它的值為 5 MB。

  • Key 中的成員個數過多:一個 ZSET 類型的 Key,它的成員數量為10,000個。

  • Key 占用內存大的同時數量眾多:一個Hash類型的Key,它的成員數量雖然只有1,000個但這些成員的Value(值)總大小為100 MB。

推薦大小與數量:

  • 單個key的value小于10KB

  • 對于集合類型的key,建議元素數量小于1000

1.3 BigKey 存在的問題

  1. 網絡阻塞導致帶寬被占滿:對 BigKey 執行讀請求時,少量的 QPS(每秒查詢率)就可能導致帶寬使用率被占滿,導致 Redis 實例,乃至所在物理機變慢。

  2. 內存資源分配不均勻:BigKey 所在的 Redis 實例內存使用率遠超其他實例,無法使數據分片的內存資源達到均衡

  3. 計算耗時久導致線程阻塞:對元素較多的 hash、list、zset 等做運算會耗時較久,使主線程被阻塞。

  4. 序列化導致 CPU?壓力飆升:對 BigKey 的數據序列化和反序列化會導致 CPU 的使用率飆升,影響 Redis 實例和本機其它應用

二、BigKey 的發現與解決方案

第一種方式:redis-cli --bigkeys

redis-cli --bigkeys:利用 redis-cli 提供的 --bigkeys 參數,可以遍歷分析所有 key,并返回Key 的整體統計信息與每個數據的 Top1 的 big key

第二種方式:scan掃描

scan掃描:自己編程,利用 scan 掃描 Redis 中的所有 key,利用strlen、hlen 等命令判斷 key 的長度(此處不建議使用MEMORY USAGE)

第三種方式:第三方工具

第四種方式:網絡監控

網絡監控:自定義工具,監控進出 Redis 的網絡數據,超出預警值時主動告警(阿里云 Redis 監控)

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

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

相關文章

Golang 與 C/C++ 交互實踐

在軟件開發的實際場景中,我們常常會遇到需要將不同語言的優勢結合起來的情況。Golang 憑借其高效的并發性能和簡潔的語法,在網絡編程和系統開發領域備受青睞;而 C/C 則以其強大的底層操作能力,在系統資源管理方面具有獨特優勢。那…

五子棋流量主小程序單模式多模式開源版

功能和特點: 核心游戲功能: 1515 標準棋盤 黑白棋交替落子 自動判斷勝負和平局 悔棋功能 計時功能 UI 設計: 木紋風格棋盤 立體感棋子(使用陰影和漸變) 響應式布局,適配不同屏幕尺寸 勝利彈窗動畫 交互體驗…

Python古代文物成分分析與鑒別研究:灰色關聯度、嶺回歸、K-means聚類、決策樹分析

原文鏈接:tecdat.cn/?p42718分析師:Gan Tian 在文化遺產保護領域,古代玻璃制品的成分分析一直是研究中西方文化交流的關鍵課題。作為數據科學家,我們在處理某博物館委托的古代玻璃文物保護咨詢項目時,發現傳統分析方法…

RabbitMQ消息隊列實戰指南

RabbitMQ 是什么? RabbitMQ是一個遵循AMQP協議的消息中間件,它從生產者接收消息并傳遞給消費者,在這個過程中,根據路由規則進行消息的路由、緩存和持久化。 AMQP,高級消息隊列協議,是應用層協議的一個開放…

用Java將PDF轉換成GIF

為什么要將 PDF 文件轉換為 GIF 圖片? PDF 是一種矢量圖像格式(因此可以根據指定的尺寸進行渲染),而 GIF 是一種有損的、固定尺寸的位圖文件,像素值固定。因此,將 PDF 轉換為 GIF 文件時,我們需…

Redis之分布式鎖(2)

上一篇文章我們介紹了什么是分布式鎖和分布式鎖的一些基本概念。這篇文章我們來講解一下基于數據庫如何實現分布式鎖。 基于數據庫實現分布式鎖 基于數據庫實現分布式鎖可以分為兩種方式,分別是基于數據庫表和基于數據庫排他鎖。 基于數據庫表 要實現分布式鎖&…

智能檢測護航電池產業:容量設備如何提升效率與安全?

電池容量是衡量其儲能能力的重要指標,直接影響設備續航與使用壽命。電池容量檢測設備通過模擬真實使用場景,精準測量電池的充放電性能,為電池生產、質檢及回收環節提供關鍵數據支持,成為保障電池品質與安全的核心工具。 核心功能…

介紹一款免費MES、開源MES系統、MES源碼

一、系統概述: 萬界星空科技免費MES、開源MES、商業開源MES、市面上最好的開源MES、MES源代碼、適合二開的開源MES。 1.萬界星空開源MES制造執行系統的Java開源版本。 開源mes系統包括系統管理,車間基礎數據管理,計劃管理,物料控制…

構建高性能日志系統:QGroundControl日志模塊深度解析

引言:日志系統的重要性 在無人機地面站系統中,日志記錄是診斷問題、分析性能的關鍵基礎設施。QGroundControl(QGC)作為領先的開源無人機地面站軟件,其日志系統設計值得深入探討。本文將揭示QGC日志系統的核心技術&…

k8s查看內存占用前十的20個pod服務,不包括job

在 Kubernetes 中,您可以使用 kubectl 命令結合一些工具來查看內存占用前十的 Pod 服務,并排除 Job 類型的 Pod。以下是一個示例命令,您可以在終端中運行: kubectl top pods --all-namespaces --no-headers | grep -v job | sort …

Spring Boot 集成 LangChain4j 示例

文章目錄 概述一、DeepSeek API Key 獲取二、Spring Boot 集成 LangChain4j 示例三、拓展建議 概述 LangChain4j 是 LangChain 在 Java 生態下的實現,它是一個開源庫,幫助你更方便地在 Spring Boot 應用中集成大語言模型(如 OpenAI 的 GPT-4…

數據差異的iOS性能調試:設備日志導出和iOS文件管理

在復雜iOS項目中,尤其是集成多個第三方服務、使用混合數據源(本地遠程緩存)的系統里,“數據不一致”類問題極具迷惑性。一方面,數據看似可用,邏輯層也沒有明顯錯誤;另一方面,用戶層面…

二進制與生活:從數字世界到人生哲理

二進制與生活:從數字世界到人生哲理 最近重溫《少年謝爾頓》,被劇中謝爾頓與二進制對話的場景深深打動。這讓我思考:二進制這個看似冰冷的數字系統,其實與我們的生活有著千絲萬縷的聯系。今天,讓我們一起走進二進制的世…

基于SMB協議的內網存活主機探測技術研究

一、 技術背景 SMB(Server Message Block)協議是Windows環境中廣泛使用的網絡文件共享協議,默認開放于445端口。由于其在Windows系統中的核心地位,SMB協議常被用作內網探測的重要切入點。本文系統介紹多種基于SMB的存活主機探測技術,幫助安全…

IDEA21中文亂碼解決辦法

我改了很多,可能也改了一些沒用的 1.在VM options中添加-Dstdout.encodingUTF-8 -Dstderr.encodingUTF-8 2.IDEA 控制臺輸出設置為 UTF-8 打開 IDEA → File → Settings(或 CtrlAltS) 搜索 "Encoding" 設置 Project Encoding 和…

時序數據庫概念及IoTDB特性詳解

一、數據庫管理系統概述 數據,如同空氣般普遍存在于我們的數字生活中,每一次點擊手機都可能產生并記錄數據。這些數據被存儲在數據庫中,而數據庫實質上是“數據的集合”。數據庫管理系統(DBMS)則負責這些“數據容器”…

leetcode:263. 丑數(python3解法,數學相關算法題)

難度:簡單 丑數 就是只包含質因數 2、3 和 5 的 正 整數。 給你一個整數 n ,請你判斷 n 是否為 丑數 。如果是,返回 true ;否則,返回 false 。 示例 1: 輸入:n 6 輸出:true 解釋&am…

RK3568筆記八十五:LVGL播放AVI視頻

若該文為原創文章,轉載請注明原文出處。 最近有個需求,需要播放視頻,但使用的框架是LVGL顯示,所以了解了下LVGL怎么實現播放視頻。 目前了解到的方法有兩種: 一、使用ffmpeg方式,此方法適用于大部分視頻 二、使用opencv方式,此方法適用于大部分視頻 三、使用woshin…

stm32使用定時器PWM

1、定時器TIM PSC-Prescaler-預分頻器 CNT-Counter-計數器 ARR-Auto Reload Register-自動重裝寄存器 RCR-Repetition Counter Register-重復計數器 1、時鐘來源:晶振提供頻率,時鐘樹這些才提供時鐘 分頻系數 計數 3、實例 上面展示了假設使用外部石英晶振提供32.76…