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

时间:2014-09-03 10:32:45

标签: c# redis stackexchange.redis redislabs

我正在ASP.NET MVC网站中存储ConnectionMultiplexer静态对象达到~500req / sec,这些对象正在RedisLabs上击中Redis实例。偶尔我会看到错误说SocketFailure on EVAL并且RedisLabs仪表板上的连接数增加了。我是否应该处置旧ConnectionMultiplexer实例并重新创建新实例或在这些异常后手动重新连接?

1 个答案:

答案 0 :(得分:2)

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

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