在Laravel 7中配置PhpRedis
我已经在Homestead安装了一个全新的Laravel,并且按照Laravel文档中的建议安装了PhpRedis 我按照此指南安装PhpRedis 在Laravel文档和我链接的安装PhpRedis的指南中,我被指示在config/app.php中重命名Redis别名 如果计划将PhpRedis扩展与Redis Facade别名一起使用,则应将其重命名为其他名称,如RedisManager,以避免与Redis类发生冲突。您可以在app.php配置文件的别名部分执行此操作。在Laravel 7中配置PhpRedis,laravel,redis,phpredis,laravel-facade,Laravel,Redis,Phpredis,Laravel Facade,我已经在Homestead安装了一个全新的Laravel,并且按照Laravel文档中的建议安装了PhpRedis 我按照此指南安装PhpRedis 在Laravel文档和我链接的安装PhpRedis的指南中,我被指示在config/app.php中重命名Redis别名 如果计划将PhpRedis扩展与Redis Facade别名一起使用,则应将其重命名为其他名称,如RedisManager,以避免与Redis类发生冲突。您可以在app.php配置文件的别名部分执行此操作。 -拉威尔博士 为了进
-拉威尔博士 为了进一步增加我的困惑,Laravel文档接着说,您应该完全删除别名 为了避免类命名与Redis PHP扩展本身发生冲突,您需要从应用程序配置文件的别名数组中删除或重命名Lightlight\Support\Facades\Redis facade别名。通常,在使用Redis PHP扩展时,应完全删除此别名,并仅通过其完全限定的类名引用facade。
-拉威尔博士 我的主要问题是:
在laravel项目中使用redis有两种不同的配置/方法
predis
,它位于您的供应商
文件夹中。这是一个“灵活和功能完整的Redis客户端的PHP和HHVM”位于。它是一个用php
编写的包/库PhpRedis
,它是用C
编写并定位的扩展PhpRedis客户端
时,它正在检查新Redis
实例是否为Facade,因为PhpRedis也在使用Redis
name is,您可以从中看到。所以,如果你想在你的laravel框架中使用PhpRedis,你最好重命名你的外观,因为它会导致冲突
predis
用作客户端,则可以保持原样。如果要将PhpRedis
用作客户端,则需要重命名别名
RedisManager::someMethod()
。如果使用predis,您将使用Redis::someMethod()
谢谢你的回复!我仍然很困惑,=/I在config/app.php文件中将我的别名重命名为RedisManager。然后我尝试在我的控制器中使用它,`$visions=RedisManager::incr('visions');返回$visions;`但我得到:找不到类“Lightlight\Support\Facades\RedisManager”。我尝试添加UseIllumb\Support\Facades\RedisManager;同样,但我也犯了同样的错误。这并不是说我更加开明了,而是我发现我不能使用“使用Redis”,而是必须使用“使用Illumb\Support\Facades\Redis;”。因此,我做了相反的操作,并更改了“使用照明\Support\Facades\RedisManager;”只是“使用RedisManager”,它似乎可以工作。@Josh这取决于您的
客户机的选择-实际上它不会改变外观-外观将是相同的,但别名将不同。我认为您是通过使用RedisManager
实现的。
protected function connector()
{
switch ($this->driver) {
case 'predis':
return new Connectors\PredisConnector;
case 'phpredis':
return new Connectors\PhpRedisConnector;
}
}