redis的bigkey浅显分析

2023-10-28 20:30
文章标签 分析 redis 浅显 bigkey

本文主要是介绍redis的bigkey浅显分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如何分析redis的bigkey?
现在互联网通用的缓存组件,基本上都依赖于redis,在使用redis的时候,运维团队往往会碰到一些因为bigkey导致的慢查和业务响应缓慢的问题,针对redis的bigkey如何去分析?
PS.大于10K的就被定义为大key
第一种方案:
1.通过shell脚本调用–bigkeys把实例的bigkeys分析出来
2.通过shell脚本调用–scan把实例的key通过scan拿出来在进行ttl key,确认是否设置ttl
3.最终将输出的结果放到日志文件中
4.通过filebeat-logstash-es-kibana进行展示
5.通过elastalert可针对keyvalue进行匹配告警
缺点:每次执行脚本,遇到key很多的实例,执行时间会很久
在这里插入图片描述
最终效果
在这里插入图片描述
第二种方案
1.通过aws后台将实例的备机导出rdb文件落盘到10.161.40.92上
2.通过go分析rdb文件,github项目路径:https://github.com/weiyanwei412/rdb_bigkeys/
3.执行命令 ./rdb_bigkeys --bytes 1024 --file bigkeys_test.csv --sep 0 --sorted --threads 4 /tmp/aa.rdb 将文件落盘到CSV并进行排序
4.将改CSV文件传输到ELK中展示
缺点:同上导出RDB文件比较慢,相比脚本要快点,可同步导出多个实例的rdb文件,该方法不支持5.0版本的rdb,支持老版本,目前测试成功版本是3.2.11
效果:
在这里插入图片描述

FAQ:考虑到rdb_bigkeys每次在分析rdb文件的时候,不能往一个文件输入(每次都是清空),改了代码,将内容追加输入,这样多个rdb会往一个文件输入,修改代码如下:
在这里插入图片描述
在这里插入图片描述
第三种方案:
1.通过rdb工具将实例的备机导出rdb文件落盘到机器上
2.通过redis-rdb-tools分析rdb文件,并将结果输入到csv中
3.执行命令rdb -c memory /tmp/aa.rdb --bytes 1024 -f memory.csv将结果落盘到文件
4.通过filebeat-logstash-es-kibana进行展示
缺点:很慢,没有go快
优点:支持各版本rdb
效果:
在这里插入图片描述

这篇关于redis的bigkey浅显分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/295764

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

Redis存储的列表分页和检索的实现方法

《Redis存储的列表分页和检索的实现方法》在Redis中,列表(List)是一种有序的数据结构,通常用于存储一系列元素,由于列表是有序的,可以通过索引来访问元素,因此可以很方便地实现分页和检索功能,... 目录一、Redis 列表的基本操作二、分页实现三、检索实现3.1 方法 1:客户端过滤3.2 方法

Python中操作Redis的常用方法小结

《Python中操作Redis的常用方法小结》这篇文章主要为大家详细介绍了Python中操作Redis的常用方法,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解一下... 目录安装Redis开启、关闭Redisredis数据结构redis-cli操作安装redis-py数据库连接和释放增

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

redis防止短信恶意调用的实现

《redis防止短信恶意调用的实现》本文主要介绍了在场景登录或注册接口中使用短信验证码时遇到的恶意调用问题,并通过使用Redis分布式锁来解决,具有一定的参考价值,感兴趣的可以了解一下... 目录1.场景2.排查3.解决方案3.1 Redis锁实现3.2 方法调用1.场景登录或注册接口中,使用短信验证码场

Redis 多规则限流和防重复提交方案实现小结

《Redis多规则限流和防重复提交方案实现小结》本文主要介绍了Redis多规则限流和防重复提交方案实现小结,包括使用String结构和Zset结构来记录用户IP的访问次数,具有一定的参考价值,感兴趣... 目录一:使用 String 结构记录固定时间段内某用户 IP 访问某接口的次数二:使用 Zset 进行

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每