如何做到阿里雲 Redis 開發規範中的拒絕 bigkey
點選上方“業餘草”,選擇“置頂公眾號”
第一時間獲取技術乾貨和業界資訊!
程式碼中的問題,光靠 Code Review 是不夠的。Code Review 主要是解決規範問題,當然也能排查出一些 bug。
Code Review 適合技術驅動型團隊、公共服務型團隊、測試缺失型團隊、新人密集型團隊、任何有主觀意願的團隊。Code Review 活動主要圍繞下面 4 項工作開展。
說到程式碼規範,我們就不得不提阿里雲的 Redis 開發規範。這個規範寫的很好,想把我說的都總結了。需要這套規範的可以私信我,我發給你們。
其中有一條寫到:
意思我們都懂,關鍵是這個 bigkey 不好掌握,使用著使用著 key 可能就變大了,不規範了。
那麼有沒有大 Key 檢測機制呢?答案當然有。阿里雲提供了一個大 Key 搜尋工具:https://yq.aliyun.com/articles/117042。原理其實就是和我們下面要將的內容類似。
因為有時候,我們的 BUG 就是無意直接產生的,bigkey 也有可能是你知識欠缺,缺乏考慮等原因造成的。因此,對於生產中的一些問題,我們還需要做到主動出擊,主動去觀察每個服務的健康狀況。下面我們就一起來看看如果提前發現 Redis 中使用不合理的大 Key。
redis-cli -h{ip} -p{port} bigkeys 命令就是幹這個事情的。該命令會對 redis 中的 key 進行取樣,尋找較大的 keys。是用的是 scan 方式,不用擔心會阻塞 redis 很長時間不能處理其他的請求。執行的結果可以用於分析 redis 的記憶體的只用狀態,每種型別 key 的平均大小。
例如當我執行:redis-cli -h 127.0.0.1 -p 7001 –bigkeys 後,會出現如下內容:
String 就是字串、Hash 就是雜湊、List 就是列表、Set 就是集合、zset(sorted set:有序集合)。
字串型別:一般認為超過 10k 的就是 bigkey,但是這個值和具體的 OPS 相關。
非字串型別:體現在雜湊,列表,集合型別元素過多。
bigkey 通常會導致記憶體空間不平衡,超時阻塞,如果 key 較大,redis 又是單執行緒,操作 bigkey 比較耗時,那麼阻塞 redis 的可能性增大。每次獲取 bigKey 的網路流量較大,假設一個 bigkey 為 1MB,每秒訪問量為 1000,那麼每秒產生 1000MB 的流量,對於普通千兆網路卡,按照位元組算 128M/S 的伺服器來說可能扛不住。而且一般伺服器採用單機多例項方式來部署,所以還可能對其他例項造成影響。
當你以為你會用 Redis 了,就可以找高薪工作了,但實際上會優化才重要!
原文連結:Redis 的大 Key 掃描 redis-cli -h{ip} -p{port} bigkeys 用法詳解
10T技術資源大放送!包括但不限於:C/C++,Linux,Python,Java,PHP,人工智慧,GO等等。在公眾號內回覆對應關鍵字或框架名字,即可免費獲取!!
你再主動一點點 我們就有故事了
相關文章
- 阿里雲Redis開發規範阿里Redis
- 一份完整的阿里雲 Redis 開發規範,值得收藏!阿里Redis
- Redis 開發規範Redis
- redis開發規範Redis
- 2020阿里巴巴官方最新Redis開發規範!阿里Redis
- 如何做到API文件規範化API
- 阿里Android開發規範:資原始檔命名與使用規範阿里Android
- 拒絕“散漫”與低效 遊戲研發也需要一套設計規範遊戲
- 阿里Android開發規範:安全與其他阿里Android
- 什麼是拒絕服務,如何防範 DoS 攻擊?
- 阿里巴巴Java開發規範手冊阿里Java
- 阿里Android開發規範:UI 與佈局阿里AndroidUI
- 阿里Android開發規範:Bitmap、Drawable 與動畫阿里Android動畫
- 開發規範
- 開發中的你的Git提交規範嗎?Git
- Redis bigkey解決方案Redis
- redis的bigkey掃描指令碼Redis指令碼
- 阿里Android開發規範:四大基本元件阿里Android元件
- 阿里Android開發規範:檔案與資料庫阿里Android資料庫
- Redis有哪些開發設計規範值得我們注意的!Redis
- MySQL資料庫規範 (設計規範+開發規範+操作規範)MySql資料庫
- 開發中的程式碼規範實踐 PHPPHP
- 專案開發過程中的管理規範
- Java開發規範(效能提升)更新中Java
- 阿里雲Elasticsearch Severless 如何做到成本降低50%阿里Elasticsearch
- 規範開發工具
- INFORMATICA 開發規範ORM
- php 開發規範PHP
- 前端開發規範前端
- MySQL開發規範MySql
- MySQL 開發規範MySql
- Git 開發規範Git
- react 開發規範React
- Redis系列24:Redis使用規範Redis
- 拒絕完美
- 關於SQL開發規範中的那些誤區!SQL
- Java開發中RestFul服務介面規範JavaREST
- 史上最全的Vue開發規範Vue