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 Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

Springboot整合Redis主从实践

《Springboot整合Redis主从实践》:本文主要介绍Springboot整合Redis主从的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言原配置现配置测试LettuceConnectionFactory.setShareNativeConnect

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

Java如何从Redis中批量读取数据

《Java如何从Redis中批量读取数据》:本文主要介绍Java如何从Redis中批量读取数据的情况,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一.背景概述二.分析与实现三.发现问题与屡次改进3.1.QPS过高而且波动很大3.2.程序中断,抛异常3.3.内存消