redis设置timeout,客户端在指定时间并没有断开连接,什么原因?

redis设置:
图片描述设置

demo

info客户端连接数

const redis = require('redis');
var client = redis.createClient('6379','127.0.0.1');
client.on('error',function(err){
    console.log('Error====',err);
});
client.on('connect',function(){
    client.set('test','test-value',redis.print);
    client.get('test',redis.print);
});
client.on('ready',function(){
    console.log('ready');
});

这是代码,我在插入一条数据后,然后就不操作了,为什么时间到了却没有断开连接的?是跟node有关吗?
如果已经断开,重连的话,怎么写,是这样写吗?初次接触redis,恳请指教,谢谢!
文档:https://github.com/NodeRedis/...
图片描述

client.on('reconnecting',function(err){
    if(err){
    console.log(err)
    }
    //var client = redis.createClient('6379','127.0.0.1');这行需要吗?
})
阅读 7.5k
2 个回答

timeout的意思是连接了120s后没接连成功就断开连接。

官方 最后一段关于这个 “过期活动的时间” 的说法,我理解的就是,当某个 key 过期了的时候,实际上他并没有马上删除,所以并不会马上去通知,什么情况会下触发过期并且通知:

  1. 当密钥被命令访问并被发现已过期时。
  2. Redis会随机扫带有过期时间的 key,当扫到并发现已过期时间。

所以官方讲:如果没有命令不断地定位密钥,并且有许多与TTL相关联的密钥,则在关键生存时间到零之间的时间和生成过期事件的时间之间(就是你设置了某个 key 失效时间【比如60秒】和该 key 实际失效并且触发通知事件的时间 【可能70秒】)可能存在显着的延迟。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题