Jedis 在内部向 redis 服务器发送 QUIT 请求
Jedis sending QUIT request to redis server internally
我的 Jedis 客户端在内部发送 quit
请求导致 Redis 服务器关闭连接。
这是意外行为。
下面是我主机的 tcpdump。
QUIT
17:12:17.702322 IP SOURCE_HOST.29039 > DEST_HOST.34250: Flags [P.], seq 1290557:1290562, ack 833190, win 65160, options [nop,nop,TS val 346069381 ecr 351399090], length 5
E..98\@.;...
%V.
W..qo....
.P.l.....U......
........+OK
17:12:17.702345 IP DEST_HOST.34250 > SOURCE_HOST.29039: Flags [.], ack 1290562, win 65366, options [nop,nop,TS val 351399092 ecr 346069381], length 0
E..4..@.@..l
我正在做以下操作。
1.获取()
2.设置()
3.setex()
4.平()
5.删除()
6.键()
我正在使用 Jedis:2.9.3 和 Kotlin。
操作:从 JedisPool 中获取资源(连接)并发送请求(ex.get())。
有谁知道为什么 Jedis 发送 QUIT
请求而不显式调用它?
- JedisPool 使用 JedisFactory。
destroyObject
在 JedisFactory 调用 quit
.
JedisFactory 的 destroyObject
实际上覆盖了 PooledObjectFactory 的 destroyObject
。
- GenericObjectPool 使用 PooledObjectFactory。
GenericObjectPool 中的 destroy
调用 PooledObjectFactory 的 destroyObject
。
- (因此 JedisFactory 的
destroyObject
)导致调用 quit
.
有很多情况 destroy
的 GenericObjectPool 被调用。
我的 Jedis 客户端在内部发送 quit
请求导致 Redis 服务器关闭连接。
这是意外行为。
下面是我主机的 tcpdump。
QUIT
17:12:17.702322 IP SOURCE_HOST.29039 > DEST_HOST.34250: Flags [P.], seq 1290557:1290562, ack 833190, win 65160, options [nop,nop,TS val 346069381 ecr 351399090], length 5
E..98\@.;...
%V.
W..qo....
.P.l.....U......
........+OK
17:12:17.702345 IP DEST_HOST.34250 > SOURCE_HOST.29039: Flags [.], ack 1290562, win 65366, options [nop,nop,TS val 351399092 ecr 346069381], length 0
E..4..@.@..l
我正在做以下操作。
1.获取()
2.设置()
3.setex()
4.平()
5.删除()
6.键()
我正在使用 Jedis:2.9.3 和 Kotlin。
操作:从 JedisPool 中获取资源(连接)并发送请求(ex.get())。
有谁知道为什么 Jedis 发送 QUIT
请求而不显式调用它?
- JedisPool 使用 JedisFactory。
destroyObject
在 JedisFactory 调用quit
.
JedisFactory 的 destroyObject
实际上覆盖了 PooledObjectFactory 的destroyObject
。- GenericObjectPool 使用 PooledObjectFactory。 GenericObjectPool 中的
destroy
调用 PooledObjectFactory 的destroyObject
。- (因此 JedisFactory 的
destroyObject
)导致调用quit
.
- (因此 JedisFactory 的
有很多情况 destroy
的 GenericObjectPool 被调用。