Redis connection pooling configuration

Abstract

Overview of the Redis connection pool settings for Commerce Engine caching and Commerce Engine Connect caching.

Sitecore Experience Commerce (XC) supports Redis connection pooling. Database connection pooling can help improve Commerce Engine or Commerce Engine Connect performance when responding to a high volume of complex requests for cached data.

With Sitecore XC, when the Redis connection pool manager selects a connection from a pool, it uses the least loaded connection, based on the StackExchange.Redis.ServerCounters.TotalOutstanding property. The use of multiple connections in a pool helps prevent scenarios where a request timeout in a single connection causes other queued requests to also timeout.

For Commerce Engine caching, Redis cache provider settings are located in the Commerce Engine config.json file.

For Commerce Engine Connect caching, the CE Connect cache settings are located in the c:\inetpub\wwwroot\<site>\App_Config\Include\Y.Commerce.Engine folder, in the Sitecore.Commerce.Engine.Connect.config file.

To configure connection pooling, you specify the number of connections allowed in a pool using the redisConnectionPoolSize property. The default configuration is:

"redisConnectionPoolSize": 1

Determining the connection pool size value for your deployment

To determine the appropriate Redis connection pool size setting for your deployment, it is good practice to start with a value that corresponds to the count of CPU cores available, multiplied by the count of HT (if using Intel Hyper-Threading Technology) or SMT (simultaneous multithreading, for processors other than Intel).

For example:

4 (CPU cores) x 2 (HT/SMT) = 8, where 8 is the initial value for the RedisConnectionPoolSize setting.