我正在尝试将我的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)
但我得到了这个错误:
get61d4bb472db95c17de8c:wsarecv:现有连接被远程主机强制关闭。
HEROKU CREDENTIALS
我感谢任何帮助!
尝试关闭RDB
持久性。如果仍然出现相同的错误,则表示Heroku存在问题。
RDB经常需要分叉((,以便使用子进程在磁盘上持久存在。如果数据集很大,Fork((可能会很耗时,并可能导致Redis如果数据集很大,CPU性能也不好。
为了更好地理解,请参阅此链接:https://redis.io/topics/persistence
请确保,您为连接创建了一个实例并在任何地方使用它,它是线程安全的。
还要确保:
启用TCP保持活动->它将防止意外的连接关闭事件。
您可以参考此链接:https://redis.io/topics/clients
增加opt.MaxRetries
。