Redis StackExchange.Redis.RedisTimeoutException on debugging



为什么当我在Visual studio中调试时,如果我在即时窗口中强制使用redis或尝试将调试行移动到另一行,我总是得到异常StackExchange.Redis.RedisTimeoutException,因为我使用redis。

如果我使用单步或单步跳过,并且我没有手动更改,则一切都可以正常工作并且 redis 负责。

我相信

这是由于:

1/默认情况下,StackExchange.Redis 的超时时间相对较短

2/调试导致线程挂起

命中断点,您正在花时间检查状态,而 StackExchange.Redis 继续计算时间(计时器未暂停)

解决方案是根据以下条件更改超时配置Debugger.IsAttached

如果检测到调试器已附加,请将 syncTimeout 的配置更改为更大的数字

这是我能够看到的。在这种情况下,qu(队列未发送)和队列都是 3,这表明命令甚至没有发送到 Redis,这就是您在客户端超时的原因。

'mgr: ExecuteSelect, err: never, queue: 3, qu: 3, qs: 0, qc: 0, wr: 0, wq: 1, in: 0, ar: 0

最新更新