I'm using StackExchange.Redis client in a c# wcf application : I use only the synchronous command to get and set values. The problem is I have a timeout with this curious log :
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)
If I understand that correctly it means that my get value is queued because there is five worker threads ? Using netstat, I see that my application is opening two physical connections to the server . I have made sure to have enought threads available in my threadpool. In my connection settings I have a syncTimeout=3000... If I use the redis-cli, I could get the value of the key in 0.64 secondes.
Can anyone help please? What can I do? Does I have to use async in my code all the way or find another redis client lib ?