Skip to content

Conversation

@stasadev
Copy link
Member

@stasadev stasadev commented Apr 25, 2025

The Issue

How This PR Solves The Issue

Adds ddev redis-backend command.

Manual Testing Instructions

Using Laravel quickstart https://ddev.readthedocs.io/en/stable/users/quickstart/#laravel

mkdir my-laravel-site && cd my-laravel-site
ddev config --project-type=laravel --docroot=public
ddev start
ddev composer create-project laravel/laravel

Get this PR add-on:

ddev dotenv set .env --cache-store=redis --redis-host=redis
ddev add-on get https://github.com/ddev/ddev-redis/tarball/20250424_stasadev_redis_backend
ddev redis-backend redis
ddev restart

Testing redis cache in Laravel:

cat <<'EOF' >routes/web.php
<?php
use Illuminate\Support\Facades\Route;
Route::get('/set/{key}/{value}', function ($key, $value) {
    cache()->set($key, $value);
    echo $value;
});
Route::get('/get/{key}', function ($key) {
    echo cache()->get($key);
});
EOF

$ curl -f https://my-laravel-site.ddev.site/set/foo/bar
bar

$ curl -f https://my-laravel-site.ddev.site/get/foo
bar

And now repeat:

ddev redis-backend redis-alpine
ddev restart
curl -f https://my-laravel-site.ddev.site/set/bar
curl -f https://my-laravel-site.ddev.site/get
ddev redis-backend valkey
ddev restart
curl -f https://my-laravel-site.ddev.site/set/bar
curl -f https://my-laravel-site.ddev.site/get
ddev redis-backend valkey-alpine
ddev restart
curl -f https://my-laravel-site.ddev.site/set/bar
curl -f https://my-laravel-site.ddev.site/get
ddev redis-backend redis:6
ddev restart
curl -f https://my-laravel-site.ddev.site/set/bar
curl -f https://my-laravel-site.ddev.site/get

Do the same with optimized config:

ddev dotenv set .env --cache-store=redis --redis-host=redis --redis-password=redis
ddev add-on get https://github.com/ddev/ddev-redis/tarball/20250424_stasadev_redis_backend
ddev redis-backend redis optimized
ddev restart
curl -f https://my-laravel-site.ddev.site/set/bar
curl -f https://my-laravel-site.ddev.site/get
ddev redis-backend redis-alpine optimized
ddev restart
curl -f https://my-laravel-site.ddev.site/set/bar
curl -f https://my-laravel-site.ddev.site/get
ddev redis-backend valkey optimized
ddev restart
curl -f https://my-laravel-site.ddev.site/set/bar
curl -f https://my-laravel-site.ddev.site/get
ddev redis-backend valkey-alpine optimized
ddev restart
curl -f https://my-laravel-site.ddev.site/set/bar
curl -f https://my-laravel-site.ddev.site/get
ddev redis-backend redis:6 optimized
ddev restart
curl -f https://my-laravel-site.ddev.site/set/bar
curl -f https://my-laravel-site.ddev.site/get

Automated Testing Overview

Release/Deployment Notes

@stasadev stasadev force-pushed the 20250424_stasadev_redis_backend branch 2 times, most recently from b95fa8e to 0478ef5 Compare April 29, 2025 08:53
@stasadev stasadev force-pushed the 20250424_stasadev_redis_backend branch from 0478ef5 to 42b8ff9 Compare May 7, 2025 13:13
@stasadev
Copy link
Member Author

stasadev commented May 7, 2025

I did some manual testing, not everything is 100% compatible with redis-server CLI, some images want to accept config with -c config_file.conf, others have completely different options.

This can be overridden with command: in docker-compose.redis_extra.yaml file.

So I'll only use redis and valkey presets, as I don't need to change anything for them.

Manual testings instructions are updated.

@stasadev stasadev force-pushed the 20250424_stasadev_redis_backend branch from 42b8ff9 to dc80263 Compare May 7, 2025 13:33
@hanoii
Copy link

hanoii commented May 27, 2025

I did try this branch for the add-on and seems to work fine!

@stasadev stasadev marked this pull request as ready for review May 30, 2025 16:48
@stasadev stasadev merged commit 5bbbf32 into main May 30, 2025
20 checks passed
@stasadev stasadev deleted the 20250424_stasadev_redis_backend branch May 30, 2025 16:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants