A healthy Redis object cache on a WooCommerce store should achieve a cache hit rate of 95% or above. If you are seeing miss rates between 40–75%, your store is generating unnecessary database load on every request. This guide walks through the five most common causes and their fixes.
Diagnosing the Miss Rate
Start by connecting to your Redis instance and running the INFO stats command to get the raw hit/miss counters:
redis-cli INFO stats | grep -E "keyspace_hits|keyspace_misses"
# keyspace_hits:1482910
# keyspace_misses:847230
# Hit rate = 1482910 / (1482910 + 847230) = 63.7%
Cause 1: Short TTL on Session Keys
WooCommerce cart and session data is stored with a default TTL of 48 hours. If your Redis maxmemory policy is set to allkeys-lru and memory is under pressure, sessions are evicted frequently — causing misses on every cart access. Solution: increase maxmemory or switch to volatile-lru to protect keys with explicit TTLs.
# In redis.conf or via redis-cli
maxmemory 512mb
maxmemory-policy volatile-lru
Cause 2: Non-Persistent Object Cache Groups
WordPress non-persistent cache groups (like counts, plugins, users) are excluded from Redis by design. But some drop-in implementations exclude too many groups. Audit your wp-content/object-cache.php for an over-broad $non_persistent_groups array.
// In object-cache.php — check what is excluded
$non_persistent_groups = [
'counts', // OK — these should be non-persistent
'plugins', // OK
'wc_session_id', // PROBLEM — WC sessions SHOULD be cached in Redis
];
Cause 3: Cache Key Collisions from Missing Site Prefix
On multisite installations or when multiple WordPress installs share a Redis instance without a unique WP_CACHE_KEY_SALT, keys overwrite each other causing unpredictable misses.
// In wp-config.php — add a unique salt per environment
define( 'WP_CACHE_KEY_SALT', 'mystore_prod_v2_' );
Cause 4: Plugin Cache-Busting on Every Request
Some WooCommerce plugins call wp_cache_flush() or delete entire cache groups on every product view or cart update. Use Query Monitor’s Object Cache panel to identify which plugin is responsible.
Expected Results After Fixes
| Scenario | Hit Rate | Avg TTFB |
|---|---|---|
| Before (misconfigured) | 63% | 580ms |
| After volatile-lru + correct groups | 91% | 210ms |
| After + unique cache key salt | 97% | 88ms |