利用rdbtools分析redis大key
2021/7/16 19:06:07
本文主要是介绍利用rdbtools分析redis大key,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#pip安装分析工具:
#pip install rdbtools python-lzf
#或者源码安装
git clone https://github.com/sripathikrishnan/redis-rdb-tools
cd redis-rdb-tools
python setup.py install
apt install python-lzf
#分析rdb工具,21G,5200W个key的rdb文件最终生成4G的csv文件
nohup /usr/rdbtools/redis-rdb-tools/rdbtools/cli/rdb.py --command memory dump.rdb > memory.csv &
#或者用以下命令,其中–bytes 1048576 可以限制只输出大于1M以上的key值,减小生成的csv文件大小。
nohup /usr/rdbtools/redis-rdb-tools/rdbtools/cli/rdb.py --command memory --bytes 1048576 dump.rdb > memory.csv &
#如果项目redis中使用到了包含",“的key,csv文件导入数据库时会将key中的”,“当成分隔符,把对应的统计数据插入到错误的字段中去
#有这种情况的话,需要将”,“换成其他符号,下面语句把”,“换成”."
cat memory.csv|awk -F “,” ‘{if(NF>8){key=$3;for (i=4;i<=NF-4;i++){key=key"."$i;} print $1","$2",“key”,"$NF-4","$NF-3","$NF-2","$NF-1","$NF;} else print $0}’ > memoryfinal.csv
#生成csv文件后,要先建表,如果项目redis没有分多个库的话,索引’idx_size’中的database字段可以去掉,提高数据插入速度,或者根据需要自行设定索引,提高查询速度
CREATE TABLE memory
(
id
int(11) NOT NULL AUTO_INCREMENT,
database
int(2) DEFAULT 0,
type
varchar(32) DEFAULT ‘’,
key
varchar(32) DEFAULT ‘’,
size_in_bytes
int(11) DEFAULT 0,
encoding
varchar(32) DEFAULT ‘’,
num_elements
int(32) DEFAULT 0,
len_largest_element
int(32) DEFAULT 0,
expiry
varchar(32) DEFAULT ‘’,
primary key (id
) using btree,
INDEX idx_size
(database
,size_in_bytes
)
) ENGINE=INNODB CHARACTER SET=utf8 ;
#csv文件导入数据表(mysql中执行)
load data infile ‘/usr/redis-4.0.9/data/memoryfinal.csv’
into table memory
fields terminated by ‘,’
lines terminated by ‘\n’ ignore 1 lines
(database
,type
,key
,size_in_bytes
,encoding
,num_elements
,len_largest_element
,expiry
);
#查询占用内容前100个大key
select m.* from memory m join (select id from memory where memory.database=2 order by size_in_bytes desc limit 100) ids on ids.id=m.id;
#查询无过期时间大key
select m.* from memory m join (select id from memory where memory.database=2 and memory.expiry="" order by size_in_bytes desc limit 100) ids on ids.id=m.id;
这篇关于利用rdbtools分析redis大key的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-07Redis高并发入门详解
- 2024-12-07Redis缓存入门:新手必读指南
- 2024-12-07Redis缓存入门:新手必读教程
- 2024-12-07Redis入门:新手必备的简单教程
- 2024-12-07Redis入门:新手必读的简单教程
- 2024-12-06Redis入门教程:从安装到基本操作
- 2024-12-06Redis缓存入门教程:轻松掌握缓存技巧
- 2024-12-04Redis入门:简单教程详解
- 2024-11-29Redis开发入门教程:从零开始学习Redis
- 2024-11-27Redis入门指南:快速掌握Redis基础操作