• Redis工具之redis_rdb_tools


      redis_rdb_tools工具的介绍:

    解析redis的dump.rdb文件,分析内存,以JSON格式导出数据。|
    提供的功能有:
      1. 生成内存报告
      2. 转储文件到JSON
      3. 使用标准的diff工具比较两个dump文件

    Rdbtools是以python语言开发的。

    一)安装

      1, pypi安装(推荐)

    pip3 install rdbtools

      2,源码安装

    # wget https://github.com/sripathikrishnan/redis-rdb-tools/archive/master.zip
    # unzip master
    # cd redis-rdb-tools-master/
    # python3 setup.py install
    Downloading/unpacking rdbtools
      Downloading rdbtools-0.1.5.tar.gz
      Running setup.py egg_info for package rdbtools
    
        warning: no files found matching 'README.textile'
    Installing collected packages: rdbtools
      Running setup.py install for rdbtools
    
        warning: no files found matching 'README.textile'
        Installing redis-memory-for-key script to /usr/local/python/bin
        Installing redis-profiler script to /usr/local/python/bin
        Installing rdb script to /usr/local/python/bin
    Successfully installed rdbtools
    Cleaning up...

    二) dump文件数据转换

     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.
    

      1. 解析dump文件并以json格式标准输出

    rdb --command json dump.rdb

      2. 只解析符合正则的keys

    rdb --command json --key "key1.*" dump.rdb

      3. 只解析一a开头的hash且位于2号库

    rdb --command json --db 2 --type hash --key "a.*" dump.rdb

    三)生成内存报告

    生成CSV格式的内存报告。包含的列有:数据库ID,数据类型,key,内存使用量(byte),编码。内存使用量包含key、value和其他值。
    注意:内存使用量是近似的。在一般情况下,略低于实际值。
    可以根据key或数据库ID或数据类型对报告的内容进行过滤。

    内存报告有助于检测是否是应用程序逻辑导致的内存泄露,也有助于优化reids内存使用情况。

    rdb -c memory dump.rdb > redis_memory_report.csv

    四)单个key使用内存量

    有时候,需要查询某个key所使用的内存。如果全部导出来在查找将是很愚蠢且耗时的。对于这种情景,可以使用redis-memory-for-key命令。
    如果出现下面信息,需要安装redis模块。redis-memory-for-key依赖redis-py包。

      1.安装

    pip3 install redis

      

     redis-memory-for-key 
    Usage: redis-memory-for-key [options] redis-key
    Examples :
    redis-memory-for-key user:13423
    redis-memory-for-key -s localhost -p 6379 user:13423
    
    
    redis-memory-for-key: error: Key not specified
    

      2.使用

    redis-memory-for-key -s 127.0.0.1 key1

    五)比较rdb文件

    rdb --command diff dump.rdb | sort > dump1.txt
    rdb --command diff dump.rdb | sort > dump2.txt
    
    diff dump1.txt  dump2.txt
  • 相关阅读:
    delphi 文件的读取(二进制文件和文本文件)
    delphi中用代码实现注册Ocx和Dll(有点怪异,使用CallWindowProc来调用指定函数DllRegisterServer)
    delphi 控件大全(确实很全)
    C#编写Windows 服务
    SSD Buffer Pool Extension
    .NET Web开发技术简单整理
    Python数据库访问之SQLite3、Mysql
    infiniband学习总结
    模板引擎开发3自定义标签的处理
    CSS选择器、优先级与匹配原理
  • 原文地址:https://www.cnblogs.com/xingxia/p/redis_rdb_tools.html
Copyright © 2020-2023  润新知