About Redis Timeout Exception

Intro About Redis Timeout Exception

這篇介紹About Redis Timeout Exception.

官方文件建議

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
What is the cause of RedisTimeoutException?

There are four main reasons:

1.All netty threads are busy, leading to delays in both Redis response decoding and sending commands to Redis
2.All connections are busy
3.Redis server takes too long to respond the request.
4.Sync methods invocation in async/reactive/rx listeners.

irst try to set follow values for nettyThreads setting: 32, 64, 128, 256 this
allow Redisson to get free netty thread to decode response or send command.
Next, try to increase retryInterval and/or timeout to a reasonable value so that
a command can still gracefully fail without having the end user wait forever.
At the last step, try to increase connection pool setting so that Redisson can
stand a better chance in getting a free connection.

Complex commands such as keys, hmget and big loops in Lua scripts are more likely
to see it than other commands. It is important to understand an operation can
still timeout despite the absence of it from the Redis slowlog. Slowlogs only
record the time a command is been processed by the Redis event loop and not
anything before or after. Network issue may also cause this exception when a
response is still in-flight.