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); }, });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值