计算redis的内存占用方式

计算redis key的内存占用情况总结分析:

准备

1、平台centos7

2、工具redis-rdb-tools,sqlite(其他数据库也可以)

安装

两种方式安装

1、使用pip安装

#pip install redis-rdb-tools   (阿里源安装不了,直接使用第二种方式)

2、源码安装

#git clone https://github.com/sripathikrishnan/redis-rdb-tools

#cd redis-rdb-tools/

#python setup.py install     (python文件使用一个不常用的包,需要安装。)

如果报错——缺少“xxx.h”文件,则安装相应的devel库

运行

1、获取对应redis的rdb文件,使用redis-rdb-tools生成内存快照

#rdb -c memory dump.rdb > memory.csv

注意:内存使用量是理论上的近似值,在一般情况下,略低于实际值

2、把数据导入sqlite库

#sqlite3 db(db为临时的文件,名字随便)

sqlite> create table memory(database int,type varchar(128),key varchar(128),size_in_bytes int,encoding varchar(128),num_elements int,len_largest_element varchar(128),time varchar(128));

sqlite>.mode csv memory

sqlite>.import memory.csv memory

查询

1、查询key个数

sqlite>select count(*) from memory  where database=0;

2、查询总的内存占用

sqlite> select sum(size_in_bytes) from memory;

你可能感兴趣的:(redis)