解决Redis连接超长自动断开问题(redis 连接超长断开)
最近,很多小伙伴都遇到了Redis连接超长自动断开的情况,似乎这是一个让不少Redis开发者头大的问题,那么我们该如何来解决这一问题呢?接下来,就由我来综述一下解决Redis连接超长自动断开的一些措施。
做好保持连接的的定期操作,很多时候被超长剔除的原因往往是因为连接一段时间没有活跃就被服务器剔除,一般情况下可以考虑设置一个定时的Schedule的任务,定期的通过PING的 操作来激活连接,如下所示:
// 创建一个定时器,定时发送ping消息
SendPingTask pingTask = new SendPingTask(jsonObject, connection);ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
// 设置每60分钟ping一次service.scheduleWithFixedDelay(pingTask, 0, 60 * 60 * 1000, TimeUnit.MILLISECONDS);
就是使用Redis自带的配置而不是默认值,Redis服务器会通过timeout指令让idle连接过期,如果我们可以设置timeout指令,就可以避免连接被超长剔除,使用timeout可以将连接的空闲时间设长:
config set timeout timeout_time
此外,还可以增大服务器的连接超时时间,常见的有keepalive参数,这个参数可以设定两个活动的连接之间的最大间隔时间,通过这个参数可以提高服务器的连接持久性,限制连接的被剔除:
tcp-keepalive 60
以上,就是解决Redis连接超长自动断开的一些措施,能够有效的增加客户端和Redis服务器之间的保持持久性,避免过多的被超长断开,有效的解决Redis连接超长自动断开的问题。