新版PHP7安装redis扩展并在laravel中运用
前言
网上有关安装这个redis
扩展文档有很多。多数都是相互借鉴的,里面还提到一定要把redis
扩展放在php_igbinary.dll
之后才行,否则就没有效果。
这些大多都是在说老版本php的方法。新版的php7已经智能了很多了,不用这些了,而且,我下载的php7里面根本就没有php_igbinary.dll
这扩展。根本就行不通。
这里着重介绍下php-7.3.6-nts-x64
扩展该如何安装。
下载扩展
- 一般新版的php,建议选择比较新的那几个redis,目前我这里列举的redis是5.2.1版本。之后,选择有DownLoads列的windows窗口的那个DLL链接,点击进去。
- 进来之后,会看到该扩展适用的几个版本,如下所示。
- 查看自己的php方式,选择适合自己的版本。
使用php运行phpinfo();
查看自己的php版本和运行方式。
我的php版本是7.3.6
,x64
的64位系统,运行方式为NTS
,也就是非线程安全版。因此,在这里,我选择7.3 Non Thread Safe (NTS) x64
。
然后,点击就下载到了dll的压缩包,解压,就看到需要的dll扩展库。
安装并使用
- 只需要将上面解压得到的
php_redis.dll
,放入php根目录的ext
目录中即可。很多教程上说
php_redis.pdb
也要放进去,我亲自尝试了,不用放能用正常使用,也不知道这个pdb有啥用,欢迎知道的小伙伴留言告诉我。 - 然后,打开
php.ini
,加入如下代码就行了,建议和之前的插件放在同一个位置,易于维护。extension=redis
不用写全称的,只需要写插件名称
redis
就行了,php会按照统一格式发现redi插件的。当然,你非要写全程extension=php_redis.dll
,也是可以的。你看看其他的插件,其他的插件都是插件名,到你这就是全称,有点格格不入的感觉。 - 之后,再次使用php连接redis就可以看到成功了。
redis在laravel的使用
上一步骤,我们已经安装成功的话,可以在laravel
中直接使用。
use Illuminate\Support\Facades\Redis;
// 测试页面首页
public function index(){
// 测试redis
Redis::set('name', 'Taylor');
$user = Redis::get('name');
dd($user);
}
如果上面的代码你的网站能成功执行,并打印出name
的话。那么就代表你的redis已经在成功运行了。
然后,cache缓存和session都可以使用redis代替了。要求也很简单,修改.env
文件cache和session的引擎都修改为redis就行了。
BROADCAST_DRIVER=log
CACHE_DRIVER=redis
QUEUE_CONNECTION=sync
SESSION_DRIVER=redis
SESSION_LIFETIME=120
CACHE_DRIVER: 就是缓存引擎
SESSION_DRIVER:就是session引擎
提示:这里明确说明,不建议使用
predis/predis
,它的诞生就是为了弥补redis扩展的。
而且,Predis 已被该软件包的原始作者遗弃,并可能在将来的版本中从 Laravel 中删除。
附录截图
未安装redis扩展,laravel强行使用redis报错如下:
安装redis成功后的 ,再次使用redis效果: