总结

1. 游戏已经上线几个月了,redis使用超过2G,今天有空就想着分析下redis中是否有大key,是否影响性能,结果查来查去,愣是没找到一个好用的办法,因为我们的redis是买腾讯云的,操蛋的腾讯云对redis做了诸多限制,fuck

2. 先说下几种常用的办法吧

办法1: DEBUG OBJECT [要查的key名字]  

优点:查询指定的单个key,很方便

缺点:只能查指定的key,且不精确,不能做整体分析,而且腾讯云的redis不让使用

示例(查询key:hall:player:used_showIDs的内存使用):

办法2:  bigkeys命令

优点:内部使用scan遍历所有key,对不同的类型会使用不同的命令,计算出其中的元素个数,而且不会造成redis阻塞,可以分析整个redis,做出准确的整体分析

缺点:占用内存分析得不够精确,而且腾讯云的redis不让使用

示例(分析笔者自己使用的redis里面的数据,但是腾讯云的redis这个命令被禁止使用)

办法3:memory usage [要查的key名字]  

优点:查询指定的单个key,很方便,且准确

缺点:只能查指定的key,不能做整体分析,而且腾讯云的redis不让使用

示例(查询key:hall:player:used_showIDs的内存使用):

办法4: rdb_bigkeys工具

优点:不影响线上的redis运行,只需要来个RDB持久化,下载文件,即可随意分析,而且可以分析得很准确

缺点:麻烦一些,因为要先拿到RDB文件,把工具编译好后才能用。而且腾讯云的不适用,因为解析错误,真fuck了,笔者还在分析方案,好蛋疼

rdb_bigkeys 工具的安装教程,请参看笔者的这篇博客

https://blog.csdn.net/yzf279533105/article/details/109105691

示例

1. 连接到redis,运行命令BGSAVE,产生rdb文件

2. 跟工具 rdb_bigkeys 放在同一个目录下,运行命令

./rdb_bigkeys --bytes 1024 --file bigkeys_1024.csv --sep 0 --sorted --threads 4 dump.rdb

--bytes  用来指定过滤那些占用字节数大于1024字节的key

--file      用来指定输出分析结果的文件名字

--sorted 表需要排序,由大到小

--threads 表使用的线程数

最后的dump.rdb是分析的rdb文件名字

效果如下图

3. 打开bigkeys_1024.csv文件,如下

database表

分析redis中大key的几种办法相关推荐

  1. Redis 热 Key 发现以及解决办法

    背景介绍 最近在技术交流微信群里看大家讨论技术,其中有谈到 Redis 热 Key 的一些问题解决方案,我也仔细思考了一下我们目前系统中 Redis 的使用场景,我们是不是也存在热 Key 问题,或者 ...

  2. Redis实战和核心原理详解(4)Redis存储Key的一种设计实现方式:模式匹配

    注意:此方案仅为演示Redis 的使用,正式生产环境切勿使用! 相关文章: Redis实战和核心原理详解(1)Centos7.0下安装Redis 5.0详细过程和使用常见问题 Redis实战和核心原理 ...

  3. redis热点key解决方案_缓存穿透,缓存雪崩,4种解决方案分析

    前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透.缓存击穿与失效时的雪崩效应. 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到 ...

  4. Redis源码分析:过期key删除与设置key的过期时间

    Redis中设置key过期时间与过期key的处理流程 在Redis中,可以再设置值的时候就设置该Key的过期时间,也可以通过在expire命令来设置某个key值的过期时间,并且在了解完设置过期时间之后 ...

  5. Redis批量删除Key的三种方式(linux和windows环境下都有)

    Redis 中有删除单个 Key 的指令 del,网上资料大多数都说没有批量删除 Key 的指令,是否真这样有待再次确定,不过我们可以借助 Linux的 xargs 指令来完成这个动作,redis本身 ...

  6. 【Redis】批量删除Key的三种方式

    Redis 中有删除单个 Key 的指令 del,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux的 xargs 指令来完成这个动作 1.使用命令行批量删除redis的key 语法 . ...

  7. 面试精讲之面试考点及大厂真题 - 分布式专栏 11 Redis热点key大Value解决方案

    11 Redis热点key大Value解决方案 时间像海绵里的水,只要你愿意挤,总还是有的. --鲁迅 引言 上期分析了<Redis 雪崩,穿透,击穿三连问>,看了我的分析后回答面试官肯定 ...

  8. redis 删除key的命令_面试官问:Redis变慢了,你会怎么排查?

    Redis作为内存数据库,拥有非常高的性能,单个实例的QPS能够达到10W左右.但我们在使用Redis时,经常时不时会出现访问延迟很大的情况,如果你不知道Redis的内部实现原理,在排查问题时就会一头 ...

  9. Redis——热点key问题

    本篇主要介绍Redis中的热点Key问题,包括热点Key产生的原因.如何监控发现热点key以及热点Key的解决方案: 其实热key问题说来也很简单,就是瞬间有大量的请求去访问redis上某个固定的ke ...

最新文章

  1. 从AK47到乌兹,这款控制器模块可以模拟不同物体体感
  2. 服务器统一计算系统,思科为微软扩展统一计算系统UCS服务器
  3. poj 3131 双向搜索+hash判重
  4. Shell编程—【05】Linux的find命令详解
  5. 修过的一个android framework原生系统代码bug
  6. list、tuple
  7. 直接请求接口_「软件测试教程」基于postman进行接口测试实战
  8. wamp安装和配置_手动配置Wordpress环境真香,让我毫不犹豫卸载LAMP和WAMP环境
  9. javax.servlet.http.HttpServletResponse.setContentLengthLong(J)V,maven项目报错!!无法访问webapp下的文件,完美解决方案
  10. SQL Server存储过程作业(三)
  11. 保持简单----纪念丹尼斯里奇(Dennis Ritchie) (zz.is2120.BG57IV3)
  12. 分析方法选讲期末复习脉络图---完结版
  13. git.exe pull -v --progress “scanpenmodular“fatal: detected dubious ownership in repository at ‘
  14. html 实时统计字数,记一次前端 input、textarea输入框实时 统计字数(真实字数)...
  15. proxifier 出现错误代码10060处理
  16. 我的域名注册踩坑指南
  17. 华为服务器扩容内存进不去系统,服务器内存扩容难点
  18. css语法---选择器
  19. 全职高手手游服务器维护,《全职高手》停服停运公告!
  20. EasySwoole使用phpexcel

热门文章

  1. 微软一站式示例代码库 8 月新代码示例发布
  2. 2021牛客多校3 - Black and white(思维+最小生成树)
  3. HDU - 6016 Count the Sheep(二分图+思维)
  4. jupyter notebook python插件_Jupyter notebook一款非常好用的python IDE
  5. access 打印预览 代码_标签打印软件如何批量打印样品标签
  6. 获取网络时间并刷新本地时间(源码2)
  7. 玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试
  8. C++ Boost库简介
  9. Websniff -aspx网页嗅探工具及使用说明
  10. 美图秀秀 sig参数分析