Skip to content

ddev/ddev-redis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Command Description
ddev redis-backend Use a different key-value store for Redis
ddev redis-cli Run redis-cli inside the Redis container
ddev redis Alias for ddev redis-cli
ddev redis-flush Flush all cache inside the Redis container
ddev describe View service status and used ports for Redis
ddev logs -s redis Check 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:

Field Value
Username redis
Password redis

For more information about ACLs, see the Redis documentation.

Swappable Redis backends

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

Command Docker Image
ddev redis-backend redis redis:7
ddev redis-backend redis-alpine redis:7-alpine
ddev redis-backend valkey valkey/valkey:8
ddev redis-backend valkey-alpine valkey/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):

Variable Flag Default
REDIS_DOCKER_IMAGE --redis-docker-image redis:7
REDIS_OPTIMIZED --redis-optimized false (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