3

我正在将ConnectionMultiplexer静态对象存储在 ASP.NET MVC 网站中,获得 ~500req/sec,这些对象正在 RedisLabs 上命中 Redis 实例。SocketFailure on EVAL有时我会在 RedisLabs 仪表板上看到错误提示并增加连接数。我应该处理旧ConnectionMultiplexer实例并重新创建新实例还是在出现这些异常后尝试手动重新连接?

4

1 回答 1

2

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

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

于 2014-09-03T10:39:05.297 回答