我正在将 ConnectionMultiplexer
静态对象存储在 ASP.NET MVC 网站中,速度达到 ~500req/sec,这会触发 RedisLabs 上的 Redis 实例。偶尔我会看到错误提示 SocketFailure on EVAL
以及 RedisLabs 仪表板上的连接数增加。我应该处理旧的 ConnectionMultiplexer
实例并重新创建新实例还是在出现这些异常后尝试手动重新连接?
最佳答案
系统应该尝试自动重新连接。它不做的是重试您的命令,因为它无法知道在服务器上完成了什么和没有完成什么(因为:套接字失败;就其所知,“ok”响应可能已经由 redis 发送了)。
因此,您不需要处理/重新连接。您可以通过在多路复用器实例上发布的事件监视连接失败/重新连接。您还可以在数据库上使用 .IsConnected()
方法(出于服务器目标原因,这需要一个 key ,但如果您只与一台服务器通信,则可以将任何内容作为 key 传递)。
关于c# - 在 StackExchange.Redis 中维护 ConnectionMultiplexer 对象的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25642058/