我有一个节点微服务监听队列,我将一些消息保存到Redis(每4-5秒),我不知道哪个是最佳选择。
我应该保持与Redis的开放连接,还是每次使用数据库时最好打开和关闭连接?
答案 0 :(得分:0)
正如@SergioTulentsev解释的那样,最好使用单个连接。
如果您使用的是ioredis
,那么即使您的客户端被拒绝,ioredis
也会尝试为您重新连接,并且还会有一个内存中命令qeueu填充,直到客户端再次连接,然后ioredis
将再次发送所有这些命令。
https://github.com/luin/ioredis#offline-queue
默认情况下,当Redis无法处理命令(在ready事件之前发送)时,它会添加到脱机队列中,并在可以处理时执行。您可以通过将enableOfflineQueue选项设置为false来禁用此功能:
const redis = new Redis({enableOfflineQueue:false});