loading...

Redis in Laradock

dendihandian profile image Dendi Handian Updated on ・3 min read

Explore Laradock Services (8 Part Series)

1) Laradock - A PHP Developer's best friend. 2) Redis in Laradock 3 ... 6 3) Mailhog in Laradock 4) PHP-Worker in Laradock 5) PHP-Worker for Scheduler in Laradock 6) RabbitMQ in Laradock 7) Elasticsearch in Laradock 8) HTTPS Local Development using Caddy in Laradock

Cache is the first thing you have in mind and would do to speed-up your application performance. Any kind of cache storages are worthful, but memory is more preferable. When it come to memory, Memcached and Redis are top choiches. Memcached arguably has the higher performance, but some people prefer Redis because of its data-persistent ability. Regardless of your choice, I still go with Redis because it's what I want to tell you here and I think it's the popular one :)

Laradock has Redis and PhpRedisAdmin services pre-configured and let's try these out!

Run Redis and PhpRedisAdmin

I assume you have tried and know how to work with Laradock, if not then you can start to setup a laravel app with Laradock here.

To run the Redis and PhpRedisAdmin, simply run this docker-compose command:

docker-compose up -d redis redis-webui

after executing above command, check the containers status by executing docker-compose ps . Everything are OK if these services runs like this:

           Name                          Command               State                    Ports
---------------------------------------------------------------------------------------------------------------
...
laradock_redis-webui_1        tini -- php -S 0.0.0.0:80        Up      0.0.0.0:9987->80/tcp
laradock_redis_1              docker-entrypoint.sh redis ...   Up      0.0.0.0:6379->6379/tcp
...

We could also check the amount of resources used by these container by executing docker stats and here are what I got:

CONTAINER ID        NAME                          CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
b03c9e10d43c        laradock_redis-webui_1        0.03%               4.391MiB / 3.846GiB   0.11%               726B / 0B           14.5MB / 0B         2   
244ddeb2ceb7        laradock_redis_1              0.70%               2.016MiB / 3.846GiB   0.05%               726B / 0B           7.44MB / 0B         4 

We can see that the containers uses small amount of resources.

Enter Redis Console for using Redis CLI

Even if I'm about to tell you about PhpRedisAdmin later, you might want to check out how to use redis' cli commands in Laradock. To enter the console, simply run this command:

docker-compose exec redis bash

Then you will be inside the console and you can try a redis-cli command like this:

C:\Users\drizzer\laradock>docker-compose exec redis bash
root@82596b34b720:/data# redis-cli PING
PONG
root@82596b34b720:/data#

to exit the console, type exit and ENTER.

Setup Redis as Cache Engine for Laravel App

To continue, make sure you have redis client installed first. It's either Predis or PHPRedis, but I will use Predis here. So, if you not installed predis yet, then add it to your laravel app by executing this composer command:

composer require predis/predis:^1.0

When you done installing predis, then make sure these parameters and values are set in your laravel app .env file:

...

CACHE_DRIVER=redis

REDIS_URL=redis
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379

...

Then, you can start a test to set a value to redis through laravel app. The simple one is by modifying the default laravel welcome route in routes\web.php like this:

...

Route::get('/', function () {
    \Cache::store('redis')->put('Laradock', 'Awesome', 100);
    return view('welcome');
});

...

Then access your laravel app homepage once, and let's see the result in PhpRedisAdmin.

PS: the third parameter with 100 value above is the lifetime of the created cache until it destroyed automatically.

Accessing PhpRedisAdmin

When you accessing http://localhost:9987 for the first time or out of the session, you will be alert-prompted to enter username and password. enter laradock for both and you will see the interface like this:

phpredisadminui

By default, our created cache is created in database 0 and you will definitely see it already.

test-redis


That's all basic usage of Redis in Laradock from me, have fun experimenting Redis in Laradock environment!

laravel version used: 6.0 LTS

Explore Laradock Services (8 Part Series)

1) Laradock - A PHP Developer's best friend. 2) Redis in Laradock 3 ... 6 3) Mailhog in Laradock 4) PHP-Worker in Laradock 5) PHP-Worker for Scheduler in Laradock 6) RabbitMQ in Laradock 7) Elasticsearch in Laradock 8) HTTPS Local Development using Caddy in Laradock

Posted on by:

dendihandian profile

Dendi Handian

@dendihandian

Please teach me how to prettify database schema, implement any design patterns and do TDD in Drupal / Wordpress and how to make them not slow as ever.

Discussion

markdown guide