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')
1
2
3
4
5
6
7
8
9
10
11
12
<br>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 @   地铁程序员  阅读(156)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示