当Redis的内存已经快满的时候,我们能做什么呢?
最直接的方法就是分析一下Redis内存的构成,看是哪些键比较大,或者比较多,然后考虑一下对应的功能能不能优化,例如减少超时时间,例如不必要的数据不用放缓存,例如有些键已经没有用了,但是没有及时删除,也没有超时时间
分析Redis内存的构成,常用的是用分析工具rdbtools,这个工具可以导出redis的所有key,以及它占用的内存大小。

文档

一、安装

pip install python-lzf
pip install rdbtools

能执行rdb命令,表示安装成功

二、使用

(vsing_backend) [www@NingBo_10_1_33_26 data]$ rdb --help
Usage: rdb [options] /path/to/dump.rdbExample : rdb --command json -k "user.*" /var/redis/6379/dump.rdbOptions:-h, --help            show this help message and exit-c FILE, --command=FILECommand to execute. Valid commands are json, diff,justkeys, justkeyvals, memory and protocol-f FILE, --file=FILE  Output file-n DBS, --db=DBS      Database Number. Multiple databases can be provided.If not specified, all databases will be included.-k KEYS, --key=KEYS   Keys to export. This can be a regular expression-o NOT_KEYS, --not-key=NOT_KEYSKeys Not to export. This can be a regular expression-t TYPES, --type=TYPESData types to include. Possible values are string,hash, set, sortedset, list. Multiple typees can beprovided.                      If not specified, alldata types will be returned-b BYTES, --bytes=BYTESLimit memory output to keys greater to or equal tothis value (in bytes)-l LARGEST, --largest=LARGESTLimit memory output to only the top N keys (by size)-e ESCAPE, --escape=ESCAPEEscape strings to encoding: raw (default), print,utf8, or base64.

三、基本命令

分析rdb文件,生成内存使用报告:

 rdb -c memory -k "test*" dump.rdb > /data1/kevinlu/a.csv
  • -c memory
  • -k 表示只统计那些keys,支持通配符
  • dump.rdb redis的RDB文件,通过bgsave生成
  • 把结果导出到/data1/kevinlu/a.csv文件

注意:

  • 报告中的内存使用量,单位是字节。报告中的内存使用量只是近似值。实际的内存使用量会比报告的使用量稍大,大概1.5倍到1.7倍左右。(测试的时候,Redis info命令的内存占用是8G,dump.rdb文件是2.7G,报告的内存使用总量是5G)

四、redis RDB文件生成

  1. 通过命令bgsave来生成,这样不影响线上业务
  2. 生成前需要备份原有的dump.rdb,不然会覆盖
  3. 生成前注意看机器内存,例如如果Redis内存已经到7G,那bgsave生成的过程中,redis进程需要再占7G内存,要注意内存够不够
  4. 注意硬盘够不够,不过这个一般是够的

转载于:https://www.cnblogs.com/Xjng/p/11350833.html

redis内存分析工具rdbtools相关推荐

  1. golang 编写的在线redis 内存分析工具 rma4go

    redis 内存分析工具 rma4go redis是一个很有名的内存型数据库,这里不做详细介绍.而rma4go (redis memory analyzer for golang) 是一个redis的 ...

  2. redis 内存分析工具 `rma4go`

    redis 内存分析工具 rma4go redis是一个很有名的内存型数据库,这里不做详细介绍.而rma4go (redis memory analyzer for golang) 是一个redis的 ...

  3. 一个golang编写的redis内存分析工具rma4go

    redis 内存分析工具 rma4go 简介 redis是一个很有名的内存型数据库,这里不做详细介绍.而rma4go (redis memory analyzer for golang) 是一个red ...

  4. redis 内存分析工具 RMA 使用

    RMA 介绍 RMA 是一个控制台工具,用于实时扫描 Redis 密钥空间并按密钥模式聚合内存使用情况统计信息.您可以使用此工具而无需在生产服务器上进行维护.您可以按所有或选定的 Redis 类型进行 ...

  5. Redis内存分析工具

    2019独角兽企业重金招聘Python工程师标准>>> RdbTools是一个由于分析Redis dump.rdb文件的工具,有以下功能: 生成所有数据库和key的内存分析报告 把d ...

  6. Redis内存分析工具之redis-rdb-tools的安装与使用

    操作系统:Centos7    1.redis-rdb-tools工具是用python语言编写的,所以首先需要安装python: 安装: (1)安装libffi-devel: yum -y insta ...

  7. 内存分析_Redis内存爆炸增长?你需要知道这一套Redis内存分析方法

    Redis Redis介绍 NoSQL Redis是当前比较热门的NOSQL数据库之一,和Memcache一样,数据都是缓存在计算机内存中.完全开源免费,遵守BSD协议,是一个高性能的key-valu ...

  8. Windows系统内存分析工具的介绍

    Windows系统内存分析工具的介绍(进程管理器,资源管理器,性能监视器, VMMap, RamMap,PoolMon) 微软官方提供多种工具来分析Windows 的内存使用情况,除了系统自带的任务管 ...

  9. [转] python运行时内存分析工具meliae

    转自:https://my.oschina.net/markco/blog/601773 利用meliae来监控python进程的内存占用情况 meliae是一个python进程内存占用监控.分析工具 ...

最新文章

  1. getRotationMatrix2D 函数
  2. debian中添加sudo命令
  3. (Spring)整合mybatis
  4. .Net应该学什么怎么学(三)
  5. CSS_03_04_CSS伪元素选择器
  6. 关于c++中运算符重载
  7. ue查找文件中每行第二个单词_UI设计和UE/UX设计有什么区别?它们的晋升路径是什么?...
  8. javaEE异常摘要——更换工作区相同tomcat当部署在同一个项目疑难解答
  9. 字节跳动高工面试:mysql主从复制延迟
  10. 当桌面的快捷方式图标左下角出现一个X(叉)的时候应该怎么去掉
  11. WinForm中为按钮添加键盘快捷键,超简单,亲测有效
  12. matlab上机操作作业指导书,LED自动固晶基本操作1
  13. 第一章 计算机网络参考模型
  14. 多进程——守护进程例子
  15. python合并单元格的方法是_python合并多个excel单元格的方法
  16. 【网络安全】OSSIM平台网络日志关联分析实战
  17. 一个测试经理/测试主管/测试总监的工作总结
  18. selenium+java发送cookie,绕过验证码登录
  19. html乡愁代码,Homesick 乡愁
  20. C++设计模式-中介者模式详解

热门文章

  1. 下降沿触发的jk触发器(带异步复位和置位功能)_边沿触发器 || D触发器 || JK触发器 || 逻辑功能转换 工作特性 || 重难点 || 数电...
  2. Lesson3.2 variables
  3. VS2008中的一些命令窗口
  4. 矿区无人机影像地物提取(语义分割)
  5. python go rpc_Python RPC 之 gRPC
  6. 基于相关系数的影像匹配_论文推送 | 基于最优匹配算法的像控点电子点之记制作研究...
  7. mysql的字段长度_【mysql】字段类型和长度的解释
  8. python的networkx 算法_python图算法库Networkx笔记 - Node and Centrality
  9. Fixjs——显示交互基类InteractiveObject
  10. 白话SCRUM 之四:燃尽图