Redis - 一篇讲解根据 Key 前缀统计分析内存占用

news/2024/10/30 21:27:05/

问题描述

今天遇到一个 Redis 内存打挂了的问题,想看看哪个前缀 Key 占用内存比较大?!

原因分析

我们都知道如果直接用 Keys 参数去做统计很危险,而且也只能统计数量,当然也可以排序去前几名的占用内存 Key 对应的大小,但是我们的需求是要模糊匹配前缀(属于同一类业务)所占用的内存大小总计

解决方案

方法一

推荐一个工具,通过 dump.rdb 文件进行分析

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

1、安装 redis-rdb-tools 工具

wget https://github.com/sripathikrishnan/redis-rdb-tools/archive/master.zip
unzip master
cd redis-rdb-tools-master/
python setup.py install

2、根据 dump.rdb 文件成生内存报告进行分析

# 生成报告
rdb -c memory ./dump.rdb > redis_memory_report.csv# 根据使用的内存大小进行排序
sort -t, -k4nr redis_memory_report.csv

方法二

  • go版本:go-redis-memory-analysis
  •  php版本:redis-memory-analysis

附加

补充一下,前面生成的 csv 导入到数据库中之后,就可以利用 sql 语句很方便的对 Redis 的内存数据进行各种分析了(当然也可以用 Excel)

DROP TABLE IF EXISTS `memory`;
CREATE TABLE `memory` (`DATABASE` int(11) DEFAULT NULL,`type` varchar(128) DEFAULT NULL,`KEY` varchar(128) DEFAULT NULL,`size_in_bytes` int(11) DEFAULT NULL,`encoding` varchar(128) DEFAULT NULL,`num_elements` int(11) DEFAULT NULL,`len_largest_element` varchar(128) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SET FOREIGN_KEY_CHECKS=1;

这个是建表语句。通过 Navicat 之类的工具导入数据,然后分析

SELECT SUM(size_in_bytes) FROM memory WHERE `KEY` LIKE '%blog:%'

 这个是表中的所有数据


http://www.ppmy.cn/news/815405.html

相关文章

Android的游戏开发和iOS游戏开发

Android的游戏开发和iOS游戏开发   Android的技术是踩在新的加息和一天按一天它的市场份额取得领先。有这种奇妙的技术为乡亲们都在采用这种技术来控制他们的手机设备中的市场份额的巨大增长。的Andr​​oid还提供了应用程序在网络上为您的移动目标就业发展的第三方支持。通过…

ios和android游戏纹理优化和内存优化

1、2d游戏最占内存的无疑是图片资源。 2、cocos2d-x不同平台读取纹理的机制不同。ios下面使用CGImage,android和windows下是直接调用png库。我测试了下,使用png库直接读取png会比CGImage还要节约1mb左右内存(图片所占内存4mb)但是速度要比C…

iOS 平台游戏如何对接 GameCenter

现在随着手游市场的不断扩大,活跃在IOS平台下的游戏厂商为了增加玩家的粘性,以及为自己的游戏前途考虑都纷纷开始接入苹果国内公司的游戏平台GameCenter;今天呢我就把我对接GameCenter的一些心得以及操作分享给大家,内容很简单也希望在这方面…

ios模拟器装ipa包_ios模拟器怎么安装游戏应用教程

iOS模拟器是苹果Xcode IDE的一部分,主要用来为Mac,iPhone和iPad创建应用程序,为了给iOS模拟器打包应用程序,利用–package 在命令行上执行ADT并使用–target来指定其中一个目标。 比如,对于检测注释目标你可以执行下面…

在ios上运行安卓计算机软件,安卓竟然也能运行iOS,苹果怒了!

iPhone最大的优势是什么? 答案肯定是iOS。 很多人离不开iPhone, 就是因为其丝滑般的系统,强大的生态。 但是,如果这种优势不复存在呢? 也许你会说,怎么可能? 目前的安卓还比不了iOS。 这话说的没…

如何在Mac上玩安卓手游(支持各大安卓手机游戏数据同步)

很多小伙伴由于手机的型号不同,各大厂商的游戏端不同,导致在助手上下载的游戏不支持自己原来手机的里游戏资料。下面跟随小编来帮助你解决这个烦恼 首先我们需要借助腾讯手游助手 for mac版 腾讯手游助手 mac版是一款可以让用户在mac电脑上玩手机游戏的软件,腾讯手游助手m…

自锁电路分析与应用

原理图分享 今天工作中遇到一个设计很妙的电路,请教了一下硬件的工程师。 大家自己直接看图可以分享出这个电路的作用吗,可以在评论区告诉我哦! 自锁电路 如上图就是一个自锁电路,和下面的电路一样: 电路现象描述&a…

map和set介绍及使用

目录 一、什么是关联式容器 二、set 1.set的介绍 2.set的使用方法 三、mutiset 四、map 1.map简介 2.map的使用 五、multimap 一、什么是关联式容器 在了解map、set之前,你肯定已经使用过vector、list、deque、forward_list(C11)等这些容器,而他…