ioredis连接复用时长、空闲超时配置及保活机制咨询
关于ioredis空闲超时与保活机制的解答
1. ioredis是否存在会关闭连接的空闲超时配置?
ioredis默认没有内置的主动关闭空闲连接的超时配置,它不会因为连接空闲而主动断开。但需要注意:Azure Redis服务端本身可能配置了空闲超时(Idle Timeout),如果连接长时间处于空闲状态,服务端会主动断开连接。
如果需要在客户端侧实现空闲超时断开逻辑,可以自行通过定时器结合disconnect()方法实现,这并非ioredis原生提供的功能。
2. ioredis是否会自动发送ping包保活?
ioredis支持自动发送ping包保活,通过keepAlive配置项控制:
- 默认情况下
keepAlive为0,即不开启保活机制; - 当将
keepAlive设置为大于0的数值(例如keepAlive: 30000,代表每30秒发送一次ping),客户端就会定期向Redis服务发送ping包,维持连接活跃,避免被Azure的网络层或Redis服务端因空闲断开。
创建客户端时配置该参数的示例如下:
const Redis = require('ioredis'); const redis = new Redis({ host: 'your-redis-host', port: 6379, password: 'your-redis-password', keepAlive: 30000 // 开启30秒间隔的ping保活 });
内容的提问来源于stack exchange,提问作者Shravani Sree Ravinuthala
相关产品推荐
相关产品推荐

