在StackExchange.Redis中维护ConnectionMultiplexer对象的正确方法是什么

本文关键字:方法 是什么 对象 ConnectionMultiplexer StackExchange Redis 维护 | 更新日期: 2023-09-27 18:20:39

我将ConnectionMultiplexer静态对象存储在ASP.NET MVC网站中,每秒获得约500req,这些对象正在RedisLabs上访问Redis实例。偶尔我会在RedisLabs面板上看到SocketFailure on EVAL和连接数增加的错误。我应该处理旧的ConnectionMultiplexer实例并重新创建新实例,还是在出现这些异常后尝试手动重新连接?

在StackExchange.Redis中维护ConnectionMultiplexer对象的正确方法是什么

系统应尝试自动重新连接。它所做的而不是所做的是重试您的命令,因为它无法知道在服务器上完成了什么和没有完成什么(因为:套接字失败;据它所知,redis可能已经发送了"ok"响应)。

因此,您不需要处理/重新连接。您可以通过多路复用器实例上发布的事件来监控连接失败/重新连接。您也可以在数据库上使用.IsConnected()方法(出于服务器定位的原因,这需要一个密钥,但如果您只与一台服务器通信,则可以将任何内容作为密钥传递)。