1

We are using Sitecore 9.3 in our multi-site application. And we are using Redis Cache in one of our application. We are suddenly facing the below exception in our Redis server. Please find the below exception details:

Exception: StackExchange.Redis.RedisTimeoutException
Message: Timeout performing ZADD shared_ExpirationIndex (5000ms), inst: 9, qs: 6, in: 0, serverEndpoint: Unspecified/XXX.redis.cache.windows.net:6390, mgr: 10 of 10 available, clientName: XXX, IOCP: (Busy=0,Free=1000,Min=8,Max=1000), WORKER: (Busy=21,Free=32746,Min=8,Max=32767), v: 2.0.519.65453 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts)
Source: StackExchange.Redis

Below is the code used to set the redis cache value:

            var cache = Connection.GetDatabase();
            var serializedModel = JsonConvert.SerializeObject(model);
            var cachedValue = expirationInMinutes != 0 
                ? cache.StringSet(cacheKeyName, serializedModel, TimeSpan.FromMinutes(expirationInMinutes))
                : cache.StringSet(cacheKeyName, serializedModel);

Please suggest the reason for this timeout exception.

1 Answer 1

1

I have faced a similer type of issue, could you please check the following:

  • In the Web.config and Sitecore.Analytics.Tracking.config files, increase the pollingInterval attribute value on both Private and Shared session state provider definitions from 2 to 60 seconds.
  • In the Sitecore.Analytics.Tracking.config file, find the timeoutBetweenLockAttempts parameter. Increase its value from 10 to 200 milliseconds.

Review your config files from your CD server according to Sitecore recommendation in this KB article here https://support.sitecore.com/kb?id=kb_article_view&sysparm_article=KB0858026

I also recommend you check if the cache tuning is enough or not.

If your problem still persists then (ensure that you are not customizing the Redis):

See the Blog Post for more details: Intermittent StackExchange.Redis.RedisTimeout Exception in Sitecore

2
  • We are using Inproc for Session and also the above recommended settings are already in place. FYI,We are using the below settings for tracking redis shared session: <add name="redis" type=" Sitecore.SessionProvider.Redis.RedisSessionStateProvider, Sitecore.SessionProvider.Redis" connectionString="session" pollingInterval="60" applicationName="shared" operationTimeoutInMilliseconds="5000" retryTimeoutInMilliseconds="16000" connectionTimeoutInMilliseconds="3000" pollingMaxExpiredSessionsPerSecond="20" /> Can you suggest the value for operationTimeoutInMilliseconds?
    – Geetha
    Commented Sep 12, 2023 at 9:36
  • The final values must be tuned per-solution as a result of load testing. Tune operationTimeoutInMilliseconds 15000, connectionTimeoutInMilliseconds 5000. Can I ask do you have a custom Redis Code? Which environment you are using PaaS or IaaS? As per your question and code, I guess you are customizing Redis. Am I right? Commented Sep 12, 2023 at 14:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.