【发布时间】:2017-11-23 18:49:36
【问题描述】:
我在 c# wcf 应用程序中使用 StackExchange.Redis 客户端:我只使用同步命令来获取和设置值。问题是我有这个奇怪的日志超时:
Timeout performing EXISTS DataKey:50,
inst: 1, queue: 1, qu: 0, qs: 1, qc: 0, wr: 0, wq: 0, in: 0, ar: 0, clientName: Machine1,
serverEndpoint: redis-server:6381, keyHashSlot: 7984,
IOCP: (Busy=1,Free=799,Min=8,Max=800),
WORKER: (Busy=5,Free=795,Min=8,Max=800)
(Please take a look at this article for some common client-side issues that can
cause timeouts: http://stackexchange.github.io/StackExchange.Redis/Timeouts)
如果我理解正确,这意味着我的 get 值已排队,因为有五个工作线程? 使用 netstat,我看到我的应用程序正在打开到服务器的两个物理连接。 我确保在我的线程池中有足够的线程可用。 在我的连接设置中,我有一个 syncTimeout=3000... 如果我使用redis-cli,我可以在0.64秒内得到key的值。
有人可以帮忙吗?我能做些什么?我必须一直在我的代码中使用 async 还是找到另一个 redis 客户端库?
【问题讨论】:
标签: c# timeout stackexchange.redis