使用 Docker 来开发 PHP,Laradock 系列 2:Redis

304 阅读3分钟

Cache 是你要考虑的第一件事,也是加快应用程序性能的第一件事。任何类型的缓存存储都是有价值的,但内存更可取。说到内存,Memcached 和 Redis 是首选。Memcached 可以说具有更高的性能,但有些人更喜欢 Redis,因为它具有数据持久性的能力。不管你的选择,我仍然选择 Redis,因为这是我想告诉你的,我认为这是最流行的一个 :blush:


Laradock 已经预先配置了 Redis 和 PhpRedisAdmin 服务,让我们来试试吧!


运行 Redis 和 PhpRedisAdmin

我想你已经尝试过并知道如何使用 Laradock,如果没有,你可以在这里开始用 Laradock 设置 laravel 应用。

运行 Redis 和 PhpRedisAdmin,简单地运行这个 docker-compose 命令:

docker-compose up -d redis redis-webui

执行上述命令后,通过执行 docker-compose ps 检查容器状态。如果这些服务是这样运行的,那么就都可以了:

           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
...

我们还可以通过执行 docker stats 检查这些容器使用的资源量,下面是我运行后得到的结果:

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 

我们可以看到,所使用到的资源其实很少。

进入 Redis 控制台以使用 Redis CLI

即使我稍后要告诉你如何使用 PhpRedisAdmin,你也有可能想反向开车,希望了解如何在 Laradock 中使用 Redis 的 CLI 命令。要进入控制台,只需运行以下命令:

docker-compose exec redis bash

然后你进入控制台,可以尝试这样的 redis cli 命令:

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

若要退出终端,可以输入 exit 并回车.


将 Redis 设置为 Laravel 应用程序的缓存引擎

如果要进行下一步,请确保已首先安装 Redis 客户端。它要么是 Predis 要么是 PHPRedis,我将在这里使用 Predis。如果你还没有安装 Predis,那就通过 composer 安装一下嘛,执行以下命令将其添加到你的 laravel 应用程序中就可以了:

composer require predis/predis:^1.0

等你装好 predis,确认一下这些值和参数在你 laravel 中的.env 已经写好了:

...

CACHE_DRIVER=redis

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

...

然后,你可以启动一个测试,通过 laravel 应用程序将值设置为 redis。最简单的方法是在 routes\web.php 中修改默认的 laravel 路由,如下所示:

...

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

...

然后访问你的 laravel 首页,就可以去 PhpRedisAdmin 看看结果啦。

PS: 上面值为 100 的第三个参数是创建的缓存的生存周期。

访问 PhpRedisAdmin


当你第一次或者没有 sesiion 访问 http://localhost:9987 时,系统将提示你输入用户名和密码。输入 laradock,你会看到这样的界面:

默认情况下,我们是在 database 0 中创建缓存的,你肯定已经看到它了。

以上是我在 Laradock 中对 Redis 的所有基本用法,在 Laradock 环境中体验 Redis 的乐趣吧!

laravel version used: 6.0 LTS


更多学习内容请访问:

八重樱:腾讯T3-T4标准精品PHP架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)​

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处