热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

redis内存占用过高的问题排查

背景在往消息系统发送消息,写入redis的时候,出现redis内存飙升的情况,原来redis服务器的内存是16G,占用约8

背景

在往消息系统发送消息,写入redis的时候,出现redis内存飙升的情况,原来redis服务器的内存是16G,占用约8G,后面通过补推业务数据造成了占用到90%的内存。紧急把服务器内存升级到32G,再继续补推数据,内存飙升的情况还继续,在一两个小时内又飙升到92%左右。


排查过程


用上重启大法

分别重启了redis的从库,主库,都没用。这个方案pass。


是否有内存碎片?

怀疑是频繁修改redis里值过大的key引起的,后来在测试环境对某个有6千多个值的key进行修改1万次,观察redis占用内存的变化,结果是变化不大。另外,根据redis的几个内存相关参数看到redis内存碎片也正常。这个原因又被pass。


寻找占用内存过高的key

目标是想利用某些工具分析出redis里哪些key的值占用内存最多,并且按占用大小做倒序,根据key的业务值去排查是否正常。最后运维通过下面的工具拿到redis的大key,发现是系统设计的问题,有很多大key已经不再使用,但是并没有在redis里删除,引起了这个问题。最终通过删除相关的key把redis内存降低到6.5G左右。
获取redis大key的方法详见:https://yq.aliyun.com/articles/117042


推荐阅读
  • 一面问题:MySQLRedisKafka线程算法mysql知道哪些存储引擎,它们的区别mysql索引在什么情况下会失效mysql在项目中的优化场景&# ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • 解决Redis大Key问题的有效策略
    本文探讨了Redis中大Key的问题及其解决方案。大Key是指Redis数据库中占用大量内存的键值对,通常指字符串类型超过10KB的数据。文章详细分析了大Key的影响及检测方法,并提出了有效的处理措施。 ... [详细]
  • 利用RabbitMQ实现高效延迟任务处理
    本文详细探讨了如何利用RabbitMQ实现延迟任务,包括其应用场景、实现原理、系统设计以及具体的Spring Boot实现方式。 ... [详细]
  • 本文档详细介绍了在 Kubernetes 集群中部署 ETCD 数据库的过程,包括实验环境的准备、ETCD 证书的生成及配置、以及集群的启动与健康检查等关键步骤。 ... [详细]
  • 深入解析 Golang 中的 Cache::remember 方法实现
    本文详细探讨了如何在 Golang 中实现类似于 Laravel 的 Cache::remember 方法,通过具体的代码示例和深入的分析,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Docker入门与实践指南
    本文介绍了Docker的基础知识,包括其作为开源应用容器引擎的特点,以及如何利用Docker将应用程序及其依赖项打包成轻量级的容器镜像。同时,还详细讲解了Docker的核心概念、安装过程及基本命令操作。 ... [详细]
  • 本文深入探讨了Redis中的两种主要持久化方式——RDB(Redis Database)和AOF(Append Only File),并详细解析了两者的实现机制、优缺点以及在实际应用中的选择策略。 ... [详细]
  • 本文提供了一套实用的方法论,旨在帮助开发者构建能够应对高并发请求且易于扩展的Web服务。内容涵盖了服务器架构、数据库管理、缓存策略以及异步处理等多个方面。 ... [详细]
  • 58同城的Elasticsearch应用与平台构建实践
    本文由58同城高级架构师于伯伟分享,由陈树昌编辑整理,内容源自DataFunTalk。文章探讨了Elasticsearch作为分布式搜索和分析引擎的应用,特别是在58同城的实施案例,包括集群优化、典型应用实例及自动化平台建设等方面。 ... [详细]
  • 如何使用C#对TCP传输的数据进行加密以防止恶意重放攻击
    近期遇到一些恶意用户利用特定工具频繁向服务器发起连接请求,特别是登录和注册操作,导致服务器积累了大量无用数据。普通的加密方法虽然能保护数据不被篡改,但无法阻止数据被重复利用。本文探讨了有效对抗此类恶意行为的方法。 ... [详细]
  • 本文详细探讨了虚拟化的基本概念,包括服务器虚拟化、网络虚拟化及其在云计算环境中的应用。特别强调了SDN技术在网络虚拟化和云计算中的关键作用,以及网络虚拟化技术如何提升资源利用效率和管理灵活性。 ... [详细]
  • 本文介绍了如何计算给定数组中所有非质数元素的总和,并提供了多种编程语言的实现示例。 ... [详细]
  • 本文详细介绍了Java中RulesBasedCollator类的getCollationElementIterator(String source)方法,包括其功能、使用场景及代码示例。 ... [详细]
  • GBase 8s SQL 指南:多列约束详解
    本文档详细介绍了如何在GBase 8s中使用多列约束格式,将其应用于现有表的一列或多列。这种格式类似于CREATE TABLE语句中的多列约束,但提供了一些额外的选项,如INDEX DISABLED关键字。 ... [详细]
author-avatar
媛涞汝茨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有