2025年redis 内存分析工具 RMA 使用

redis 内存分析工具 RMA 使用RMA 介绍 RMA 是一个控制台工具 用于实时扫描 Redis 密钥空间并按密钥模式聚合内存使用情况统计信息 您可以使用此工具而无需在生产服务器上进行维护 您可以按所有或选定的 Redis 类型进行扫描 例如 字符串 哈希 列表 集合 zset 并根据需要使用匹配模式 RMA 尝试通过模式识别键名

大家好,我是讯享网,很高兴认识大家。

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 ,就到此结束。

小讯
上一篇 2025-01-07 07:14
下一篇 2025-03-11 17:35

相关推荐

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