node redis 在服务端使用踩坑

测试环境正常,生产环境不能正常访问

1、测试环境和生产环境不同的是配置的 redis 不一样,难道是因为 redis吗?

 

类似issue:

https://github.com/luin/ioredis/issues?q=++Error%3A+read+ECONNRESET

https://github.com/luin/ioredis/issues/1203

 

2、debug mock 代码,打印请求 redis 返回值

  • 测试环境可以请求到数据
  • 生产环境仍然是报错的

 

 

 看上去是在生产环境 redis 链接不上,可能得问问 redis 相关同学了。

 

3、后来经过和 redis 开发沟通

ioredis 这个库连接时会发一个info,twemproxy 不支持info命令,所以ioredis认为异常所以进行了重连: https://github.com/luin/ioredis/issues/573 

增加一个参数

 

const Redis = require('ioredis')

const redis = new Redis({ "port": , "host": "", "password": "", "db": 0, maxRetriesPerRequest: 20, enableReadyCheck: false,// 增加参数 retryStrategy(times) { console.warn(`Retrying redis connection: attempt ${times}`); return Math.min(times * 500, 2000); }, });

  

 

 

posted @ 2023-03-01 18:17  地铁程序员  阅读(115)  评论(0编辑  收藏  举报