我在ASP.NET MVC网站中存储ConnectionMultiplexer静态对象,获取速度约为500req / sec,这在RedisLabs上达到了Redis实例的水平。偶尔我会在RedisLabs仪表板上看到说SocketFailure on EVAL的错误和增加的连接数。我应该处置旧的ConnectionMultiplexer实例并重新创建新的实例,还是尝试在这些异常之后手动重新连接?

最佳答案

系统应尝试自动重新连接。它不执行的操作是重试您的命令,因为它无法知道服务器上的操作和未完成的操作(因为:套接字失败;就其所知,redis可能已经发送了“ok”响应)。

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

关于c# - 在StackExchange.Redis中维护ConnectionMultiplexer对象的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25642058/

10-11 06:20