警惕Redis长时间不连接的危险(redis长时间不连接)
对于很多在现实应用中使用的Redis服务,系统的稳定可靠性都是必须重视的,其中,警惕Redis长时间不连接的危险,是极为重要的部分。
关于长时间不连接的危险,就 必须提到Redis的长连接问题: REDis底层会通过心跳包来维护长连接;但是如果在REDIS客户端没有发出心跳包,REDIS连接就会一直存在,导致此连接一直处于激活状态而never- timeout。如果这样的长连接过多,可能会导致redis客户端很多连接打破了系统设定的连接上限,也会出现“too many connections”的连接错误,限制了系统的正常的使用。
为解决Redis长时间不连接的危险,可做如下操作:
第一,为了解决Redis长时间不连接的危险,应该适当的设置Redis getIdleTimeout超时时间,即断开多长时间没有收发消息的连接会被断开,这样当不需要的连接停留太久时,就可以断开它以腾出空间给新连接,从而解决这个问题。
此外,可以通过在客户端发送Ping命令等方法来防止发生长时间不连接的危险。
对于比如在一个for循环中通过jedis客户端登录,就可以在每次进入for循环之前,使用如下语句开启心跳:
jedis.ping();
这样就能保证每次进入for循环时,Redis己开启心跳,从而阻止Redis长时间不连接的危险发生。
在使用Redis时,千万不要忽略了警惕Redis长时间不连接的危险,否则系统运行可能会出现连接错误,带来诸多麻烦。
相关文章