Laravel使用Redis缓存

Laravel框架
541
0
0
2022-05-15

前言

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

即可取出数据。

至此,已验证相关配置成功。