您好,登錄后才能下訂單哦!
redis內存分析工具redis-rdb-tools安裝部署
項目地址:https://github.com/sripathikrishnan/redis-rdb-tools
安裝Python2.7
下載redis-rdb-tools
git clone https://github.com/sripathikrishnan/redis-rdb-tools.git
安裝redis-rdb-tools
pip2.7 install python-lzf
cd redis-rdb-tools
python2.7 setup.py install
# 以json格式輸出
> rdb --command json /var/redis/6379/dump.rdb
# 以json格式輸出,模糊查找
> rdb --command justkeyvals --key "user.*" /var/redis/6379/dump.rdb
user003 fname Ron,sname Bumquist,
user001 fname Raoul,sname Duke,
user002 fname Gonzo,sname Dr,
user_list user003,user002,user001
# 查找確定鍵信息
> redis-memory-for-key -s localhost -p 6379 -a mypassword person:1
Key person:1
Bytes 111
Type hash
Encoding ziplist
Number of Elements 2
Length of Largest Element 8
# rdb文件解析并輸出為csv
> rdb -c memory /var/redis/6379/dump.rdb --bytes 128 -f memory.csv
> cat memory.csv
database,type,key,size_in_bytes,encoding,num_elements,len_largest_element
0,list,lizards,241,quicklist,5,19
0,list,user_list,190,quicklist,3,7
2,hash,baloon,138,ziplist,3,11
2,list,armadillo,231,quicklist,5,20
2,hash,aroma,129,ziplist,3,11
# 輸出top10的鍵信息
rdb -c memory --largest=10 /app/redis/data/7000/dump.rdb
在redis-cluster模式下使用戶出現如下報錯,將地址改為該鍵對應的地址即可
[root@TEST python2.7]# redis-memory-for-key -s 172.16.2.53 -p 7000 KEYNAMETEST
Traceback (most recent call last):
File "/usr/local/python2.7/bin/redis-memory-for-key", line 11, in <module>
load_entry_point('rdbtools==0.1.12', 'console_scripts', 'redis-memory-for-key')()
File "/usr/local/python2.7/lib/python2.7/site-packages/rdbtools-0.1.12-py2.7.egg/rdbtools/cli/redis_memory_for_key.py", line 43, in main
db=options.db, password=options.password)
File "/usr/local/python2.7/lib/python2.7/site-packages/rdbtools-0.1.12-py2.7.egg/rdbtools/cli/redis_memory_for_key.py", line 53, in print_memory_for_key
raw_dump = redis.execute_command('dump', key)
File "/usr/local/python2.7/lib/python2.7/site-packages/redis/client.py", line 668, in execute_command
return self.parse_response(connection, command_name, **options)
File "/usr/local/python2.7/lib/python2.7/site-packages/redis/client.py", line 680, in parse_response
response = connection.read_response()
File "/usr/local/python2.7/lib/python2.7/site-packages/redis/connection.py", line 629, in read_response
raise response
redis.exceptions.ResponseError: MOVED 16278 172.16.0.99:7000
[root@TEST python2.7]# redis-memory-for-key -s 172.16.0.99 -p 7000 KEYNAMETEST
Key KEYNAMETEST
Bytes 933972.0
Type sortedset
Encoding skiplist
Number of Elements 7658
Length of Largest Element 8
注意事項:
1、整個rdb文件的解析會導致CPU占用嚴重,所以慎用!!!
2、最好選擇單鍵查詢的方式,不太消耗資源
3、如果需要解析某個rdb文件,最好使用它的備份文件,或者將文件導出到本地或者測試機進行解析
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。