(optional) if you have an existing Redis volume, delete it to avoid problems with Redis:

November 5, 2025 · View on GitHub

add-on registry tests last commit release

DDEV Redis

Note

This add-on has absorbed functionality from ddev/ddev-redis-7, see Advanced Customization.

Overview

Redis is an in-memory key–value database, used as a distributed cache and message broker, with optional durability.

This add-on integrates Redis into your DDEV project with Redis persistence enabled by default.

Installation

ddev add-on get ddev/ddev-redis
ddev restart

After installation, make sure to commit the .ddev directory to version control.

Usage

CommandDescription
ddev redis-backendUse a different key-value store for Redis
ddev redis-cliRun redis-cli inside the Redis container
ddev redisAlias for ddev redis-cli
ddev redis-flushFlush all cache inside the Redis container
ddev describeView service status and used ports for Redis
ddev logs -s redisCheck Redis logs

Redis is available inside Docker containers with redis:6379.

What makes the optimized config different?

The default config only uses the redis.conf file.

The optimized config uses all *.conf files in the redis directory except redis.conf.

It uses hardened settings ready for production, like enabling Redis credentials.

You can read each config file to see the exact differences.

Redis Credentials

By default, there is no authentication.

If you have the optimized config enabled, the credentials are:

FieldValue
Usernameredis
Passwordredis

For more information about ACLs, see the Redis documentation.

Swappable Redis backends

Use the ddev redis-backend command to swap between Redis backends:

CommandDocker Image
ddev redis-backend redisredis:7
ddev redis-backend redis-alpineredis:7-alpine
ddev redis-backend valkeyvalkey/valkey:8
ddev redis-backend valkey-alpinevalkey/valkey:8-alpine
ddev redis-backend <image><image> (specify your custom Redis image)

Tip

Add optimize or optimized after the command to enable optimized Redis configuration.

Example: ddev redis-backend redis optimize

Advanced Customization

To apply an optimized configuration from ddev/ddev-redis-7:

ddev dotenv set .ddev/.env.redis --redis-optimized=true
ddev add-on get ddev/ddev-redis

# (optional) if you have an existing Redis volume, delete it to avoid problems with Redis:
ddev stop
docker volume rm ddev-$(ddev status -j | docker run -i --rm ddev/ddev-utilities jq -r '.raw.name')_redis

ddev restart

Make sure to commit the .ddev/.env.redis file to version control.

To change the used Docker image:

ddev dotenv set .ddev/.env.redis --redis-docker-image=redis:7
ddev add-on get ddev/ddev-redis

# (optional) if you have an existing Redis volume, delete it to avoid problems with Redis:
ddev stop
docker volume rm ddev-$(ddev status -j | docker run -i --rm ddev/ddev-utilities jq -r '.raw.name')_redis

ddev restart

Make sure to commit the .ddev/.env.redis file to version control.

All customization options (use with caution):

VariableFlagDefault
REDIS_DOCKER_IMAGE--redis-docker-imageredis:7
REDIS_HOSTNAME--redis-hostnameredis
REDIS_OPTIMIZED--redis-optimizedfalse (true/false)

Credits

Contributed by @hussainweb based on the original ddev-contrib recipe by @gormus

Optimized config from ddev/ddev-redis-7 contributed by @seebeen

Maintained by the DDEV team