redis key佔用內存量分析

Redis的指令看不出哪一類型的key,佔用了多少內存,不好分析redis內存開銷大的情況下,各應用程序使用緩存的佔比。藉助第3方工具進行分析

1、採用2個工具結合

redis-rdb-tools+sqlite

2sqlite linux服務器都會自帶,安裝redis-rdb-tools

 

使用pip安裝 pip install redis-rdb-tools

源碼安裝

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

cd redis-rdb-tools

python setup.py install

如果不成功安裝 yum install python-setuptools

 

3、獲取對應redisrdb文件,使用redis-rdb-tools生成內存快照

rdb -c memory dump.rdb > memory.csv

注意:內存使用量是理論上的近似值,在一般情況下,略低於實際

 

4、把數據導入sqlite(mysql數據庫實際上都能導入),sqlite語法和mysql基本一致

splite3 test.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

 

5、查詢

查詢key個數

sqlite>select count(*) from memory;

查詢總的內存佔用

sqlite> select sum(size_in_bytes) from memory;

查詢內存佔用最高的10key

sqlite>select * from memory order by size_in_bytes desc limit 10;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章