Redis 大 key

梦莱1年前技术文章405

1、bigkeys

Redis提供了 bigkeys 参数能够使 redis-cli 以遍历的方式分析 Redis 实例中的所有 Key ,并返回 Key 的整体统计信息与每个数据类型中 Top1 的大 Key

redis-cli -h r-***************.redis.rds.aliyuncs.com -a <password> --bigkeys
redis-cli --bigkeys
查询结果反馈如下

# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type.  You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).

[00.00%] Biggest string found so far 'k2222' with 4 bytes
[00.00%] Biggest string found so far 'kkk' with 9 bytes

-------- summary -------

Sampled 3 keys in the keyspace!
Total key length in bytes is 10 (avg len 3.33)

Biggest string found 'kkk' has 9 bytes

3 strings with 18 bytes (100.00% of keys, avg size 6.00)
0 lists with 0 items (00.00% of keys, avg size 0.00)
0 sets with 0 members (00.00% of keys, avg size 0.00)
0 hashs with 0 fields (00.00% of keys, avg size 0.00)
0 zsets with 0 members (00.00% of keys, avg size 0.00)
0 streams with 0 entries (00.00% of keys, avg size 0.00)
[root@orcls ~]#

bigkeys 是以 scan 延迟计算的方式扫描所有 key,因此执行过程中不会阻塞 redis,但实例存在大量的 keys 时,命令执行的时间会很长,这种情况建议在 slave 上扫描


2、Rdbtools 工具包

使用 Rdbtools 工具包通过分析备份 rdb 文件,可以查看期间大 key 情况及过期时间情况,且不影响实例使用,缺点是没有实时性;输出 csv 文档列信息

--安装 rdb 工具包 
(venv) [root@orcls demo]# pip install rdbtools python-lzf

--导出所有 key 的信息
rdb -c memory /dump.rdb > memory.csv
----rdb -c memory 文件目录 > 输出文件名称

---导出大 key 也可以 按照参数修改即可
rdb dump.rdb -c memory --bytes 10240 -f live_redis.csv
---rdb -c memory 文件目录 --bytes 大小  -f 输出文档名称

Rdbtools 常用参数:

-c FILE:指定rdb工具的分析动作,最常用的就是memory(内存报告),除此还有json(转json)、diff(差异比对)、justkeys(仅有key)、justkeyvals(仅有value)

-f FILE:输出结果保存到哪个文件

-n DBS:指定需要分析的数据库,可以指定多个库。如果未指定则分析所有数据库

-k KEYS:指定需要分析的key,支持正则表达式


相关文章

CDH实操--Zookeeper角色迁移

CDH实操--Zookeeper角色迁移

Zookeeper角色迁移计划1.集群Zookeeper服务角色实例分配情况2.由于角色规划不合理,需要将cdp1.hadoop.com节点的Zookeeper实例实例迁移到cdp4.hadoop.c...

zabbix监控导出生产环境数据

zabbix监控导出生产环境数据

问题需求导出zabbix数据库中 某个主机组下的端口监控 、 URL监控信息处理过程由于数据量较大,手动统计比较费时,因此考虑通过直接从数据库取出相关数据查找想关联的表,找到各监控项位于哪个数据库表内...

Hive架构图及Hive SQL的执行流程

Hive架构图及Hive SQL的执行流程

1、Hive产生背景MapReduce编程的不便性HDFS上的文件缺少Schema(表名,名称,ID等,为数据库对象的集合)2、Hive是什么Hive的使用场景是什么?基于Hadoop做一些数据清洗啊...

apache Hbase2.x  使用hbck2修复工具

apache Hbase2.x 使用hbck2修复工具

1、背景默认情况下apache hbase 使用hbck2时,无法使用-j 来加载hbck2的jar包,无法进行修复2、解决办法是由于默认情况下只使用自带的hbase hbck修复命令,大部分功能在2...

MySQL运维实战(4.5) SQL_MODE之NO_ZERO_DATE和NO_ZERO_IN_DATE

NO_ZERO_DATE:日期中不允许'0000-00-00'NO_ZERO_IN_DATE:日期中年、月或日不允许为0,如不允许'2021-00-01', '...

Prometheus监控Minio集群

Prometheus监控Minio集群

一、概述Minio支持集成prometheus,用以监控CPU、硬盘、网络等数据。二、修改docker-compose.yaml官方的给docker-compose.yaml,默认是不能访问metri...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。