如何解决 wsarecv 连接错误? Golang / Heroku Redis

How to solve the wsarecv connection error? Golang / Heroku redis

我正在尝试将我的 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: An existing connection was forcibly closed by the remote host.

HEROKU CREDENTIALS

感谢您的帮助!

尝试关闭 RDB 持久性。如果您仍然遇到相同的错误,则表示 Heroku 存在问题。

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

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

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

还要确保:

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

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

增加 opt.MaxRetries.