iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Redis中统计各种数据大小的方法
  • 1125
分享到

Redis中统计各种数据大小的方法

大小方法数据 2022-06-04 17:06:05 1125人浏览 泡泡鱼
摘要

如果 Mysql 数据库比较大的话,我们很容易就能查出是哪些表占用的空间;不过如果 Redis 内存比较大的话,我们就不太容易查出是哪些(种)键占用的空间了。 有一些工具能够提供必要的帮助,比如 redis

如果 Mysql 数据库比较大的话,我们很容易就能查出是哪些表占用的空间;不过如果 Redis 内存比较大的话,我们就不太容易查出是哪些(种)键占用的空间了。

有一些工具能够提供必要的帮助,比如 redis-rdb-tools 可以直接分析 RDB 文件来生成报告,可惜它不能百分百实现我的需求,而我也不想在它的基础上二次开发。实际上开发一个专用工具非常简单,利用 SCAN 和 DEBUG 等命令,没多少行代码就能实现:

<?PHP

$patterns = array( 'foo:.+', 'bar:.+', '.+', );

$redis = new Redis(); $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);

$result = array_fill_keys($patterns, 0);

while ($keys = $redis->scan($it, $match = '*', $count = 1000)) { foreach ($keys as $key) { foreach ($patterns as $pattern) { if (preg_match("/^{$pattern}$/", $key)) { if ($v = $redis->debug($key)) { $result[$pattern] += $v['serializedlength']; }

break; } } } }

var_dump($result);

?>

当然,前提是你需要提前总结出可能的键模式,简单但不严谨的方法是 MONITOR:

shell> /path/to/redis-cli monitor |

       awk -F '"' '$2 ~ "ADD|SET|STORE|PUSH" {print $4}'

此外,需要注意的是:因为 DEBUG 返回的 serializedlength 是序列化后的长度,所以最终计算的值小于实际内存占用,但考虑到相对大小依然是有参考意义的。

您可能感兴趣的文档:

--结束END--

本文标题: Redis中统计各种数据大小的方法

本文链接: https://www.lsjlt.com/news/11727.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java连接各种数据库的方法
    本篇内容介绍了“Java连接各种数据库的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!JDBC里统一的使用方法:Class.for(jd...
    99+
    2023-06-17
  • mysql中统计数据的方法
    小编给大家分享一下mysql中统计数据的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql中统计数据的方法:1、使用M...
    99+
    2024-04-02
  • Python统计词频的几种方法小结
    目录方法一:运用集合去重方法方法二:运用字典统计方法三:使用计数器本文介绍python统计词频的几种方法,供大家参考 方法一:运用集合去重方法 def word_count1(wo...
    99+
    2023-03-01
    Python统计词频 Python 文本词频统计
  • oracle怎么统计表的数据量大小
    要统计Oracle表的数据量大小,可以使用以下方法: 1、使用Oracle提供的dba_segments视图查询表占用的空间大小。例...
    99+
    2024-04-09
    oracle
  • 【总结】golang中各种数据类型间的转换方法
    随着互联网和技术的发展,数据分析和处理的需求越来越大。在数据分析和处理中,往往需要对数据进行转换,以便更好地进行分析和处理。而golang作为一门高效且简洁的编程语言,提供了丰富的数据转换方法和工具。本文将介绍golang中各种数据类型间的...
    99+
    2023-05-14
  • 使用Python统计字符串中各种字符的个数
    Python 统计字符串中各种字符出现的次数一、提出问题随机输入一段字符串,包括数字,英文,空格,其他字符,统计这些字符在其中出现的次数二、难点提示思路:从键盘随机输入一段字符串,然后循环遍历字符串,通过循环字符串中的每一个字符,统计各类字...
    99+
    2023-06-01
  • mysql中删除数据的四种方法小结
    目录写在前面 方法介绍1. DELETE语句示例:  2. DROP TABLE语句:3. TRUNCATE TABLE示例:4. 使用外键约束:示例: &nbs...
    99+
    2023-10-11
    mysql 删除数据
  • redis删除数据的方法有哪几种
    DEL key [key …]: 删除指定的key及其关联的值。 FLUSHDB: 删除当前数据库中的所有key。 FL...
    99+
    2024-04-09
    redis
  • redis的五种数据类型使用方法
    redis 提供五种数据类型:字符串:存储单个字符串值。哈希表:存储键值对,用于对象或映射。列表:存储有序元素序列,用于数组或队列。集合:存储不重复元素,用于唯一值或标签。有序集合:存储...
    99+
    2024-04-19
    redis 键值对
  • Linux系统下各种包的安装方法
    本篇内容介绍了“Linux系统下各种包的安装方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、rpm包安装方式步骤:找到相应的软件包,比...
    99+
    2023-06-13
  • redis大数据迁移的方法是什么
    Redis大数据迁移的方法包括以下几种:1. RDB文件迁移:RDB文件是Redis数据库的快照,可以通过将RDB文件复制到新的服务...
    99+
    2023-09-11
    redis
  • mysql查询数据库大小的方法
    这篇文章主要介绍了mysql查询数据库大小的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql查询数据库的大小的方法:1、查询整个库的...
    99+
    2024-04-02
  • 清空redis中数据的方法
    这篇文章将为大家详细讲解有关清空redis中数据的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Redis Flushall 命令用于清空整个 Redis 服务器的数...
    99+
    2024-04-02
  • 5种Python统计次数方法技巧
    目录一、使用字典 dict 统计二、使用 collections.defaultdict 统计三、List count方法四、使用集合(set)和列表(list)统计五、collec...
    99+
    2024-04-02
  • Redis的六种底层数据结构(小结)
    目录1、简单动态字符串(SDS)2、链表3、字典哈希表哈希表节点字典4、跳跃表跳跃表节点(zskiplistNode)跳跃表(zskiplist)5、整数集合6、压缩列表1、简单动态...
    99+
    2024-04-02
  • java中各种对象的比较方法
    目录前言1. 问题提出2. 元素的比较2.1 基本类型的比较2.2 对象的比较3. 对象的比较3.1 覆写基类的equal3.2 基于Comparble接口类的比较3.3 基于比较器...
    99+
    2023-05-18
    java对象比较方法 js 对象比较 java对象的比较
  • 各种数据库的SQL执行计划是怎么样的
    各种数据库的SQL执行计划是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。执行计划(execution plan,也叫查询计划或者解释...
    99+
    2024-04-02
  • redis五种数据结构的底层实现方法
    本篇内容主要讲解“redis五种数据结构的底层实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“redis五种数据结构的底层实现方法”吧!实现方法:1、每种数据结构都有自己底层的内部编码实现...
    99+
    2023-06-20
  • 微信小程序返回上一页的各种方法
    微信小程序返回上一页的各种方法 1. navigator 这是最常见的一种跳转方式,相当于html里的a标签。但需要注意的是 该方法不能跳转tabbar页面,保留当前页面,在wxml使用 内容 2. wx.navigateTo 通过构造js...
    99+
    2023-08-19
    微信小程序 javascript 小程序 前端
  • 深入聊聊MySQL中各种对象的大小长度限制
    目录标识符的长度限制权限表中范围字段的长度限制数据库和表的数量限制表大小的限制字段数量和数据行大小的限制字段数量限制数据行大小限制数据行大小限制示例总结今天给大家介绍一下 MySQL...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作