使用rdbtools分析redis內(nèi)存使用

介紹

阿里云redis內(nèi)存使用持續(xù)飆升傍念,需要分析下內(nèi)存使用情況,有發(fā)現(xiàn)redis-rdb-tools葛闷,支持對rdb文件分析憋槐,主要功能有:

  • Generate a Memory Report of your data across all databases and keys
  • Convert dump files to JSON
  • Compare two dump files using standard diff tools

實現(xiàn)

安裝

[root@xxx redis]# pip install rdbtools python-lzf
[root@xxx redis]# git clone https://github.com/sripathikrishnan/redis-rdb-tools
[root@xxx redis]# cd redis-rdb-tools
[root@xxx redis]# python setup.py install

參數(shù)說明

[root@xxx redis]# rdb --help
Usage: rdb [options] /path/to/dump.rdb

Example : rdb --command json -k "user.*" /var/redis/6379/dump.rdb

Options:
  -h, --help            show this help message and exit
  -c FILE, --command=FILE
                        Command to execute. Valid commands are json, diff,
                        justkeys, justkeyvals, memory and protocol
  -f FILE, --file=FILE  Output file
  -n DBS, --db=DBS      Database Number. Multiple databases can be provided.
                        If not specified, all databases will be included.
  -k KEYS, --key=KEYS   Keys to export. This can be a regular expression
  -o NOT_KEYS, --not-key=NOT_KEYS
                        Keys Not to export. This can be a regular expression
  -t TYPES, --type=TYPES
                        Data types to include. Possible values are string,
                        hash, set, sortedset, list. Multiple typees can be
                        provided.                      If not specified, all
                        data types will be returned
  -b BYTES, --bytes=BYTES
                        Limit memory output to keys greater to or equal to
                        this value (in bytes)
  -l LARGEST, --largest=LARGEST
                        Limit memory output to only the top N keys (by size)
  -e ESCAPE, --escape=ESCAPE
                        Escape strings to encoding: raw (default), print,
                        utf8, or base64.

生成csv報告

生成報表字段有database(key在redis的db)、type(key類型)淑趾、key(key值)阳仔、size_in_bytes(key的內(nèi)存大小)扣泊、encoding(value的存儲編碼形式)近范、num_elements(key中的value的個數(shù))、len_largest_element(key中的value的長度)延蟹,可以創(chuàng)建個表的導(dǎo)入到關(guān)系型庫用SQL語句分析评矩。

[root@xxx redis]# rdb -c memory hins3537653_data_20180427002229.rdb > memory.csv
mysql> CREATE TABLE `redis_memory` (
    -> id int NOT NULL PRIMARY KEY,
    ->   `database` int(128) DEFAULT NULL comment 'key在redis的db',
    ->   `type` varchar(128) DEFAULT NULL comment 'key類型',
    ->   `key` varchar(128) UNIQUE KEY comment 'key值',
    ->   `size_in_bytes` bigint(20) DEFAULT NULL comment 'key的內(nèi)存大小',
    ->   `encoding` varchar(128) DEFAULT NULL comment 'value的存儲編碼形式',
    ->   `num_elements` bigint(20) DEFAULT NULL comment 'key中的value的個數(shù)',
    ->   `len_largest_element` varchar(128) DEFAULT NULL comment 'key中的value的長度'
    -> );

解析指定key

[root@xxx redis]# rdb --command justkeyvals --key "02796f8159cabac4*" /mnt/redis/hins3537653_data_20180427002229.rdb 

解析特定字符打頭指定類型的key

[root@xxx  redis]# rdb -c json --db 0 --type string --key "02796f8159cabac4*" /mnt/redis/hins3537653_data_20180427002229.rdb 

根據(jù)使用內(nèi)存大小排序

-n是按照數(shù)字大小排序,-r是以相反順序阱飘,-k是指定需要愛排序的欄位斥杜,-t指定欄位分隔符為冒號

[root@xxx redis]# sort -t, -k4nr memory.csv

總結(jié)

現(xiàn)在是手動實現(xiàn),可以調(diào)用阿里云API實現(xiàn)自動采集和分析后入庫俯萌,前端接入grafana展示果录,實現(xiàn)對redis數(shù)據(jù)使用的監(jiān)控系統(tǒng)化,同時接入釘釘機器人報警主動推送給業(yè)務(wù)組優(yōu)化(后續(xù)更新)咐熙。

參照

redis-rdb-tools
使用rdbtools工具來解析redis dump.rdb文件及內(nèi)存使用量

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弱恒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子棋恼,更是在濱河造成了極大的恐慌返弹,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爪飘,死亡現(xiàn)場離奇詭異义起,居然都是意外死亡,警方通過查閱死者的電腦和手機师崎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門默终,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事齐蔽×骄危” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵含滴,是天一觀的道長诱渤。 經(jīng)常有香客問我,道長谈况,這世上最難降的妖魔是什么勺美? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮碑韵,結(jié)果婚禮上赡茸,老公的妹妹穿的比我還像新娘。我一直安慰自己泼诱,他們只是感情好坛掠,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著治筒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舷蒲。 梳的紋絲不亂的頭發(fā)上耸袜,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機與錄音牲平,去河邊找鬼堤框。 笑死,一個胖子當著我的面吹牛纵柿,可吹牛的內(nèi)容都是我干的蜈抓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼昂儒,長吁一口氣:“原來是場噩夢啊……” “哼沟使!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起渊跋,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤腊嗡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拾酝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體燕少,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年蒿囤,在試婚紗的時候發(fā)現(xiàn)自己被綠了客们。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖底挫,靈堂內(nèi)的尸體忽然破棺而出恒傻,到底是詐尸還是另有隱情,我是刑警寧澤凄敢,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布碌冶,位于F島的核電站,受9級特大地震影響涝缝,放射性物質(zhì)發(fā)生泄漏扑庞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一拒逮、第九天 我趴在偏房一處隱蔽的房頂上張望罐氨。 院中可真熱鬧,春花似錦滩援、人聲如沸栅隐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽租悄。三九已至,卻和暖如春恩袱,著一層夾襖步出監(jiān)牢的瞬間泣棋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工畔塔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留潭辈,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓澈吨,卻偏偏與公主長得像把敢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谅辣,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容