V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
a1oyss0925
V2EX  ›  Redis

线上服务 redis 查询超时排查求教

  •  
  •   a1oyss0925 · 157 天前 · 1959 次点击
    这是一个创建于 157 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一年前给某单位做了个门户类的服务,SpringBoot 项目,单节点 redis 、mysql 当时就是几个人瞎写,堆成一堆屎山,现在不知道为什么几乎每隔一两周 redis 都会查询超时,服务报错: java.lang.RuntimeException: org.springframework.dao.QueryTimeoutException: Redis command timed out; nested exception is io.lettuce.core.RedisCommandTimeoutException: Command timed out after 10 second(s) 稍微有点头绪的话就是有个功能会往 redis 里存大量的数据,使用的是 map ,并且取的频率还是挺高的,但是不知道该怎么确定就是这个错,没法找到证据 线上排错这方面自己也没经验,请问应该怎么入手

    6 条回复    2024-07-17 23:17:41 +08:00
    voidmnwzp
        1
    voidmnwzp  
       157 天前 via iPhone   ❤️ 1
    可能是大 key 太多,导致操作缓慢,可以搞个主从读写分离或者 cluster ,看看是不是内存占满了 开启 lru 也会变慢
    brucedone
        2
    brucedone  
       157 天前   ❤️ 1
    具体分析一下这个请求包有没有发出去,看是哪里耗时过多了
    kidlj
        3
    kidlj  
       157 天前   ❤️ 2
    1. redis 有慢查询 log ;
    2. 首先要排查有没有 keys * 查询;
    a1oyss0925
        5
    a1oyss0925  
    OP
       157 天前
    @brucedone 想问下具体是怎么操作的呢,相关命令或者工具是什么,这块实在是没经验
    a1oyss0925
        6
    a1oyss0925  
    OP
       157 天前
    @kidlj keys * 这个确定是没有了,慢查询 log 倒是忽略了,明天看看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1283 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 17:46 · PVG 01:46 · LAX 09:46 · JFK 12:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.