Redis timeout specify the type

Is it possible to find out which timeout has been exceeded in the exception?

ServiceStack.Redis.RedisException: Exceeded timeout of 00:00:10 ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

There are quite a few different timeouts available.

It’s a RetryTimeout property in RedisNativeClient

The exception mentioned above generated here:

You can enable ServiceStack logging to see stack traces of the errors and debug messages. It helps to diagnose exceptions (like timeouts), because you can see where in the code error was thrown and what was the cause of the exception. To enable logging you need to instantiate LogManager.LogFactory. For example, in console application you can write

LogManager.LogFactory = new ConsoleLogFactory(debugEnabled:true);

It will output ServiceStack debug information and internall messages to console.

For other loggers (log4net, EventLog, etc) you can see logging documentation https://github.com/ServiceStack/ServiceStack/wiki/Logging

Hi @xplicit, thanks for the response. I am having the above timeout when using redis as an ICacheClient. I thought I would be able to increase the timeout, but not sure how to do this with the RedisManagerPool?

This Timeout is the Auto Retry Timeout which is saying the Redis Client after multiple attempts starting from 10ms was unable to make a connection and had to give up. The underlying Exception was that the Redis Client couldn’t make a TCP connection with the redis-server because it’s not responding.

You can increase the timeout with:

RedisConfig.DefaultRetryTimeout = 30000; //30 secs

Note when you increase the timeout, it increases pressure on the Redis server since all failed clients will attempt to retry for much longer.