redis-rdb-tools安装部署及使用

自古美人都是妖i 提交于 2020-11-22 18:52:46

redis-rdb-tools安装部署及使用

 

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文件,最好使用它的备份文件,或者将文件导出到本地或者测试机进行解析
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!