美文网首页
redis内存使用率过高的问题

redis内存使用率过高的问题

作者: 天草二十六_简村人 | 来源:发表于2022-10-25 14:54 被阅读0次

一、问题描述

内存使用率过高.png

内存使用率过高,一直是97~98%的,我们的redis的配置是4G集群版(8节点)。

二、问题原因

程序里在写入key的时候,忘记写入ttl值,导致一直停留在内存中。
另外,它是一个大key,按天存储所有的房间列表。

代码示例

public void addTodayActiveRoom(String roomId) {
        String key = redisConfig.getKeyPrefix() + Redis.ENTIRETY_RECORD_TODAY_ACTIVE_ROOMS + getToday();
        redisTemplate.opsForSet().add(key, roomId);
        // 这里缺少对key的ttl赋值
    }

修改后的代码:

public void addTodayActiveRoom(String roomId) {
        String key = redisConfig.getKeyPrefix() + Redis.ENTIRETY_RECORD_TODAY_ACTIVE_ROOMS + getToday();
        redisTemplate.opsForSet().add(key, roomId);
        expireRedisKey(roomId);
    }

解决办法

经统计,redis-cli keys "channel_entiretyRecordActiveRooms:*" 的key值361个,也就是说长期以来(几年下来),这些Key都是存在的,永不会过期删除。
而redis实例总共有31万多个key,认为即使删除了这些几百个key,无关伤痛,不能对内存有任何缓解。

//手动删除历史的key
redis-cli keys "ykt_channel_entiretyRecordActiveRooms:*" |xargs redis-cli del

执行后的一分钟内,便明显看到了效果,内存一直直降,从97%到48%。

内存使用率降低至48%.png

三、总结

  • redis的list等集合,在业务量大的时候,很容易成为"大key"。再加上没有设置过期时间,就是大号的僵尸了。其危害可真大!
  • 总结本问题,希望能对“言必称redis”的开发同事有所警戒。因为redis一般没有只读的权限,所以开发和测试很难发现这种坑。而传统的数据库,不太会发生这种奇葩问题。

相关文章

  • redis内存使用率过高的问题

    一、问题描述 内存使用率过高,一直是97~98%的,我们的redis的配置是4G集群版(8节点)。 二、问题原因 ...

  • Redis性能问题排查解决手册

    转载:Redis性能问题排查解决手册(七) 阅读目录: 性能相关的数据指标 内存使用率used_memory 命令...

  • 系统的稳定性监控

    前言 在系统上线之后,或多或少总是会存在问题,有机器性能方面的问题,例如CPU Load过高,内存使用率高,RT高...

  • cvm内存使用率过高

    问题描述与定位 问题:监控报警内存使用率过高达到了90%,但使用top命令查看总占用量为一般,没有打到80%。(在...

  • Linux系统CPU/内存使用率过高的问题排查

    服务器出现由内存问题引发的故障,例如系统内部服务响应速度变慢、服务器登录不上、系统触发 OOM(Out Of M...

  • 线上linux系统故障排查之一:CPU使用率过高

    《线上linux系统故障排查之一:CPU使用率过高》《线上linux系统故障排查之二:内存占用过高》 一个应用占用...

  • MySQL查看线程内存占用情况

    1.背景 内存使用情况,决定着MySQL的性能,内存使用率过高会使系统响应时间变长,严重时内存耗尽还会出现OOM的...

  • Redis优化

    内存使用率 客户端连接数 不要让你的Redis所在机器物理内存使用超过实际内存总量的60%。 默认情况下,尽量不要...

  • Redis 配置过期自动删除策略

    Redis操作是基于内存的,大小有限。当内存不足或占用过高时,需要自动放弃一些未到期的数据Redis 默认 的生效...

  • 线上linux系统故障排查之二:内存占用过高

    《线上linux系统故障排查之一:CPU使用率过高》《线上linux系统故障排查之二:内存占用过高》 前一篇文章介...

网友评论

      本文标题:redis内存使用率过高的问题

      本文链接:https://www.haomeiwen.com/subject/crznzrtx.html