LOADING
RedisERRORCriticalPersistenceHIGH confidence

Redis is loading the dataset in memory

What this means

Redis returns this error when it is starting up and loading its dataset (RDB or AOF file) from disk into memory. During this time, the server is not available to handle client commands.

Why it happens
  1. 1The Redis server process has just been started or restarted.
  2. 2The dataset is very large, causing the loading process to take a significant amount of time.
  3. 3Slow disk I/O is bottlenecking the speed at which Redis can read the RDB or AOF file.
How to reproduce

A client connects and sends a command to a Redis server that is in the middle of loading a multi-gigabyte RDB file.

trigger — this will error
trigger — this will error
# Client sends immediately after server start
PING

expected output

(error) LOADING Redis is loading the dataset in memory

Fix 1

Implement a retry mechanism with exponential backoff

WHEN When connecting to a Redis instance that may restart

Implement a retry mechanism with exponential backoff
// Pseudocode
function connectWithRetry() {
  try {
    redis.ping();
  } catch(e) {
    if (e.message.includes("LOADING")) {
      // wait 1 second, then 2, then 4, etc.
      exponentialBackoffAndRetry(connectWithRetry);
    }
  }
}

Why this works

Instead of failing immediately, the client should wait for a short period and then retry the command. This gives the server time to finish loading the dataset.

Fix 2

Monitor Redis logs for loading progress

WHEN For operational insight during a startup event

Monitor Redis logs for loading progress
# In redis-server log
# Server started, Redis version X.Y.Z
# DB loaded from disk: RDB: 1234.56M
# The server is now ready to accept connections

Why this works

The Redis server log provides detailed information about the loading process, including the time taken. This helps in diagnosing slow startups and planning for downtime.

What not to do

Continuously hammer the server with commands

This generates unnecessary load on both the client and server and does not speed up the loading process. A structured retry logic is far more efficient.

Sources
Official documentation ↗

Redis startup and data loading sequence

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All Redis errors