【问题标题】:How to solve the wsarecv connection error? Golang / Heroku redis如何解决wsarecv连接错误? Golang / Heroku redis
【发布时间】:2022-01-10 22:00:10
【问题描述】:

我正在尝试将我的 go 应用程序连接到 heroku redis 数据库。使用此代码:

(使用“github.com/go-redis/redis/v8”)

opt, err := redis.ParseURL("redis://:PASSWORD@AWS-HOST:15670/0")
    if err != nil {
        panic(err)
    }
    rdb := redis.NewClient(opt)
    usu := rdb.Get(ctx, userID)

但是我收到了这个错误:

get 61d4bb472db95c17de8c: wsarecv: 一个现有的连接是 被远程主机强行关闭。

HEROKU CREDENTIALS

感谢您的帮助!

【问题讨论】:

    标签: go heroku-redis


    【解决方案1】:

    尝试关闭RDBpersistence。如果仍然出现同样的错误,则说明 Heroku 存在问题。

    RDB 需要经常 fork() 以便使用子进程在磁盘上持久化。 如果数据集很大,fork() 可能会很耗时,并且可能会导致 Redis 停止为客户服务几毫秒甚至一秒钟,如果 数据集很大,CPU性能不是很好。

    为了更好地理解,请参阅此链接:https://redis.io/topics/persistence

    确保为连接创建一个实例并在任何地方使用它,它是线程安全的。

    还要确保:

    启用 TCP keepalive -> 它将防止意外的连接关闭事件。

    你可以参考这个链接:https://redis.io/topics/clients

    增加opt.MaxRetries

    【讨论】:

      猜你喜欢
      • 2015-11-29
      • 2019-07-16
      • 2016-09-13
      • 2020-07-13
      • 2012-05-20
      • 1970-01-01
      • 2016-08-04
      • 2017-10-13
      • 2021-12-02
      相关资源
      最近更新 更多