Laravel使用Redis缓存

前言#

Laravel 默认使用文件 (file) 存储缓存,但同时提供了其他多种存储介质,其中固然包含 Redis。从安装到配置再到验证步骤较多,在此记录一下。

基于 Windows 系统

安装 Redis#

下载地址:github.com/tporadowski/redis/relea...
选择安装包 (msi) 或压缩包 (zip) 下载,下载后安装包打开选择安装路径即可,zip 则直接解压即可。

进入 redis 安装 (解压) 目录,输入 redis-cli,若命令行变为

127.0.0.1:6379>

则代表安装成功

附几个简单的命令

SELECT index 切换数据库,index为数据库编号,默认为0
SET key value 插入键值
GET key 获取key代表的值

安装 php_redis 扩展#

首先输出 phpinfo(),查看自己的 VC 版本,途中 MSVC15 即代表 VC 版本为 15。
下载地址:windows.php.net/downloads/pecl/sna...
进入后选择最新的一个版本(此时是 5.1.1),进入后按照下图选择合适的版本
下载后解压,拿出其中的 php_redis.dll,放入 php 安装目录下的 ext 文件夹中

wamp 中是 wamp/bin/php/ 启用的 php 版本 /ext

然后打开 apache/bin/php.ini

注:此处的 php.ini 只是一个快捷方式,指向的是 php 下的 phpForApache.ini 文件

在末尾加上一行

extension=php_redis.dll

刷新 phpinfo(); 页面,能看到 redis 扩展相关信息,则代表安装成功

安装 predis/predis#

进入 Laravel 项目所在目录,使用 composer 安装

composer require predis/predis

Laravel 缓存相关配置#

首先在 config/app.php 中添加 redis 服务

//去掉下面这一句的注释
Illuminate\Redis\RedisServiceProvider::class,

打开.env 文件配置下列项

CACHE_DRIVER=redis

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

config/cache.php 缓存配置文件中有这样的信息

'redis' => [
   'driver' => 'redis',
   'connection' => 'cache',
   'lock_connection' => 'default',
],

同时,config/database.php 配置文件中有这样的信息

 'cache' => [
     'url' => env('REDIS_URL'),
     'host' => env('REDIS_HOST', '127.0.0.1'),
     'password' => env('REDIS_PASSWORD', null),
     'port' => env('REDIS_PORT', '6379'),
     'database' => env('REDIS_CACHE_DB', '1'),
 ],

很明显,cache 使用的 redis 连接为 cache 连接,该连接的配置在 database.php 文件中,即为本机 redis 上的数据库 1

验证#

我们先使用 Laravel 的方法添加缓存

Cache::put('mykey','1234');

然后到 redis 安装目录下查询

redis-cli
select 1
keys *

输入以上命令后,会列出目前数据库内所有的键
可以看到我们存入 mykey,但实际上它的键并非 mykey,而是类似于下面的结构:

laravel_database_laravel_cache:mykey

使用命令

get laravel_database_laravel_cache:mykey

即可取出数据。
至此,已验证相关配置成功。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。