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

相关文章

Redis实现分布式锁全过程

《Redis实现分布式锁全过程》文章介绍Redis实现分布式锁的方法,包括使用SETNX和EXPIRE命令确保互斥性与防死锁,Redisson客户端提供的便捷接口,以及Redlock算法通过多节点共识... 目录Redis实现分布式锁1. 分布式锁的基本原理2. 使用 Redis 实现分布式锁2.1 获取锁

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

redis数据结构之String详解

《redis数据结构之String详解》Redis以String为基础类型,因C字符串效率低、非二进制安全等问题,采用SDS动态字符串实现高效存储,通过RedisObject封装,支持多种编码方式(如... 目录一、为什么Redis选String作为基础类型?二、SDS底层数据结构三、RedisObject

Redis分布式锁中Redission底层实现方式

《Redis分布式锁中Redission底层实现方式》Redission基于Redis原子操作和Lua脚本实现分布式锁,通过SETNX命令、看门狗续期、可重入机制及异常处理,确保锁的可靠性和一致性,是... 目录Redis分布式锁中Redission底层实现一、Redission分布式锁的基本使用二、Red

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

Spring Integration Redis 使用示例详解

《SpringIntegrationRedis使用示例详解》本文给大家介绍SpringIntegrationRedis的配置与使用,涵盖依赖添加、Redis连接设置、分布式锁实现、消息通道配置及... 目录一、依赖配置1.1 Maven 依赖1.2 Gradle 依赖二、Redis 连接配置2.1 配置 R

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

redis中session会话共享的三种方案

《redis中session会话共享的三种方案》本文探讨了分布式系统中Session共享的三种解决方案,包括粘性会话、Session复制以及基于Redis的集中存储,具有一定的参考价值,感兴趣的可以了... 目录三种解决方案粘性会话(Sticky Sessions)Session复制Redis统一存储Spr

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3