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
4、Laravel 官方建议通过 PECL 安装并使用 PhpRedis PHP 扩展。打开网址:https://pecl.php.net/package/redis 。选择 Version 5.3.7。下载 redis 5.3.7 for Windows。如图2
5、查看 phpinfo,Thread Safety 的值为 enabled。因此,选择 7.4 Thread Safe (TS) x64。如图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
9、再次浏览首页,打印出获取到的缓存数据:”value”。如图5
10、查看 Redis 中,配置的缓存数据库为 5。其中存在 key:laravel6_database_laravel6_cache:key,其值为:s:5:”value”;。符合预期。如图6
11、为了避免与 Redis PHP 扩展本身发生类命名冲突,您需要从 app 配置文件的 aliases 数组中删除或重命名 Illuminate / Support / Facades / Redis 外观别名。 通常,您应该完全删除此别名,并且仅在使用 Redis PHP 扩展时通过其完全限定的类名引用 Facade 。
'RedisManager' => Illuminate/Support/Facades/Redis::class,
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/250324.html