RMA 介绍
RMA 是一个控制台工具,用于实时扫描 Redis 密钥空间并按密钥模式聚合内存使用情况统计信息。您可以使用此工具而无需在生产服务器上进行维护。您可以按所有或选定的 Redis 类型进行扫描,例如“字符串”、“哈希”、“列表”、“集合”、“zset”,并根据需要使用匹配模式。RMA 尝试通过模式识别键名,例如,如果您有像“user:100”和“user:101”这样的键,应用程序会在输出中挑选出常见的模式“user:*”,这样您就可以分析大多数内存问题的数据实例。
RMA运行的结果表格有两个突出的特点:
每一个key前缀的用户空间占比
每一个key前缀的查询次数占比
安装 rma
安装rma
pip3 install rma # 从源安装 pip3 install git+https://github.com/gamenet/redis-memory-analyzer@v0.2.0
讯享网
设置国内源加速下载
讯享网# 设置阿里源 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ # 查看源设置 pip config list global.index-url='https://mirrors.aliyun.com/pypi/simple/' # 更新pip pip3 install --upgrade pip # 安装rma pip3 install rma
参数讲解
usage: rma [-h] [-s HOST] [-p PORT] [-a PASSWORD] [-d DB] [-m MATCH] [-l LIMIT] [-b BEHAVIOUR] [-t TYPES] [-f FORMAT] [-x SEPARATOR] RMA is used to scan Redis key space in and aggregate memory usage statistic by key patterns. optional arguments: -h, --help 显示此帮助信息并退出 -s, --server HOST Redis 服务器主机名。 默认为 127.0.0.1 -p, --port PORT Redis 服务器端口。 默认为 6379 -a, --password PASSWORD 连接到服务器时使用的密码 -d, --db DB 数据库编号,默认为 0 -m, --match MATCH 要匹配的键模式,支持正则通配符 -l, --limit LIMIT 获取模式匹配的最大键,设置显示多少条 -b, --behaviour BEHAVIOUR 指定应用程序工作模式。 允许值:all, scanner, ram, global ,默认为 all -t, --type TYPES 要包含的数据类型。 可能的值是string,hash, list, set。 可以提供多种类型。 如果未指定,将返回所有数据类型。 允许的值为 string、hash、list、set、zset -f, --format FORMAT 输出类型格式:json 或 text(默认) -x, --separator SEPARATOR 指定Key分隔符。 默认为":"
使用例子
准备模拟数据
讯享网import redis import string from random import sample, randint, choice def redis_add_data(n): pool = redis.ConnectionPool(host='192.168.50.134', port=6379, db=0) r = redis.Redis(connection_pool=pool) for _ in range(n): # 生成随机字符串 str_value = ''.join(sample(string_key, randint(1, 50))) # 随机获取key 结尾 str_key = choice(string_type) r.set(f'application.{
str_value}.{
str_key}', f'{
str_value}') print(f'{
n} 条数据已插入完毕') string_key = string.digits + '.' + string.ascii_letters string_type = ['publish', 'message', 'huawei', 'iso', 'body'] redis_add_data()
执行脚本插入数据
python3 wirte_redis.py # 检查是否有写入 redis-cli dbsize (integer) 98201
scanner选项
讯享网rma -d 0 -b scanner -x '.'
-d 指定几号库
-b scanner: 按照key的分类和类型,进行空间百分比的统计
-x 使用’.’ 来分割Key,Key 两边一样中间用 * 自动代替
global选项
rma -b global
-b global: Redis服务器统计

ram选项
讯享网rma -d 0 -b ram -x '.'
-b rma : 内存分析显示

本次记录redis 内存分析工具 RMA ,就到此结束。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/16794.html