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

2024-07-17 18:25:58 +08:00
 a1oyss0925

一年前给某单位做了个门户类的服务,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 ,并且取的频率还是挺高的,但是不知道该怎么确定就是这个错,没法找到证据 线上排错这方面自己也没经验,请问应该怎么入手

3129 次点击
所在节点    Redis
6 条回复
voidmnwzp
2024-07-17 18:37:59 +08:00
可能是大 key 太多,导致操作缓慢,可以搞个主从读写分离或者 cluster ,看看是不是内存占满了 开启 lru 也会变慢
brucedone
2024-07-17 18:40:20 +08:00
具体分析一下这个请求包有没有发出去,看是哪里耗时过多了
kidlj
2024-07-17 18:55:11 +08:00
1. redis 有慢查询 log ;
2. 首先要排查有没有 keys * 查询;
fano
2024-07-17 19:08:52 +08:00
a1oyss0925
2024-07-17 23:16:46 +08:00
@brucedone 想问下具体是怎么操作的呢,相关命令或者工具是什么,这块实在是没经验
a1oyss0925
2024-07-17 23:17:41 +08:00
@kidlj keys * 这个确定是没有了,慢查询 log 倒是忽略了,明天看看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1058091

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX