在 Windows 10、Laravel 6 中使用 PhpRedis PHP 扩展,存储与获取缓存数据

1、在将 Redis 与 Laravel 一起使用的时候,有两种方案,一种是安装 PhpRedis PHP 扩展,一种是通过 Composer 安装 predis / predis 包。不过 Predis 已被该软件包的原始作者遗弃,并可能在将来的版本中从 Laravel 中删除。最终决定使用第一种方案。编辑 .env 文件,设置缓存驱动为 redis。以测试 Redis 的使用。

CACHE_DRIVER=redis

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6378
REDIS_DB=4
REDIS_CACHE_DB=5

2、在首页控制器方法中,在缓存中存储与获取数据

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Cache;

class IndexController extends Controller
{
    public function index()
    {
        Cache::put('key', 'value');
        $value = Cache::get('key');
        dd($value);
    }
}

3、浏览首页,报错:LogicException Please make sure the PHP Redis extension is installed and enabled.请确保已安装并启用 PHP Redis 扩展。如图1

图1

4、Laravel 官方建议通过 PECL 安装并使用 PhpRedis PHP 扩展。打开网址:https://pecl.php.net/package/redis 。选择 Version 5.3.7。下载 redis 5.3.7 for Windows。如图2

图2

5、查看 phpinfo,Thread Safety 的值为 enabled。因此,选择 7.4 Thread Safe (TS) x64。如图3

图3

6、复制 php_redis.dll 至 C:\php-7.4.27\ext\php_redis.dll

7、编辑 php.ini 文件,启用 PhpRedis PHP 扩展。重启 PHP

extension=redis

8、查看 phpinfo,确认扩展已经安装且启用。如图4

图4

9、再次浏览首页,打印出获取到的缓存数据:”value”。如图5

图5

10、查看 Redis 中,配置的缓存数据库为 5。其中存在 key:laravel6_database_laravel6_cache:key,其值为:s:5:”value”;。符合预期。如图6

图6

11、为了避免与 Redis PHP 扩展本身发生类命名冲突,您需要从 app 配置文件的 aliases 数组中删除或重命名 Illuminate \ Support \ Facades \ Redis 外观别名。 通常,您应该完全删除此别名,并且仅在使用 Redis PHP 扩展时通过其完全限定的类名引用 Facade 。

'RedisManager' => Illuminate\Support\Facades\Redis::class,

 

永夜