当小程序扫码签到工具的访问量增大时,数据库的查询时间成了制约性能的瓶颈。
为了提前性能,我们决定使用Redis内存数据库作为缓存,以减少与数据库的交互。
为了达到目的,需要做两件事:
1. 创建Redis服务器。
2. 使用客户端连接到Redis。
创建Redis服务器
l 拉取Redis镜像
docker pull redis
l 启动Redis镜像
docker run --name myredis -p 16379:6379 -d redis redis-server
在上面的命令中,-p 16379:6379 的意思是Redis所在Docker的端口6379映射到宿主机的16379端口,意味着当访问宿主机的16379端口时,相当于访问Redis所在Docker的6379端口。
l 验证Redis是否正常启动
进入Redis所在的docker, 输入命令info,能看到redis的信息。
docker exec -it myredis redis-cli 127.0.0.1:6379>info
客户端连接到Redis
在使用 Laravel 的 Redis 之前,通过 Composer 安装 predis/predis 扩展包。
composer require predis/predis
应用程序的 Redis 配置都在配置文件 config/database.php 中。在这个文件里,可以看到 redis 数组里面包含了应用程序使用的 Redis 服务器:
'redis' => [ 'client' => 'predis', 'default' => [ 'host' => env('REDIS_HOST', 'localhost'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 6379), 'database' => 0, ], ],
在.env文件中配置如下信息:
REDIS_HOST=宿主机IP REDIS_PASSWORD=mypassword REDIS_PORT=16379
上面的信息中,mypassword和16379就是之前在启动redis的docker使用的密码和参数。
这样,Laravel中就可以使用Redis。
参考资料
请你留言