在Laravel 7中配置PhpRedis

在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配置文件的别名部分执行此操作。 -拉威尔博士 为了进

我已经在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。
-拉威尔博士

我的主要问题是:

  • “如果您计划将PhpRedis扩展与Redis Facade别名一起使用”,这意味着什么
  • 我应该何时重命名别名、将其删除或保持原样
  • 根据我是否重命名或删除别名,这将如何影响使用Redis

  • 在laravel项目中使用redis有两种不同的配置/方法

  • 第一个是使用
    predis
    ,它位于您的
    供应商
    文件夹中。这是一个“灵活和功能完整的Redis客户端的PHP和HHVM”位于。它是一个用
    php
    编写的包/库
  • 另一种方法是使用
    PhpRedis
    ,它是用
    C
    编写并定位的扩展

  • “如果您计划将PhpRedis扩展与Redis Facade别名一起使用”,这意味着什么

    在这个框架中,有一个。在创建Redis的
    PhpRedis客户端
    时,它正在检查
    新Redis
    实例是否为Facade,因为PhpRedis也在使用
    Redis
    name is,您可以从中看到。所以,如果你想在你的laravel框架中使用PhpRedis,你最好重命名你的外观,因为它会导致冲突

  • 我应该何时重命名别名、将其删除或保持原样

    如果要将
    predis
    用作客户端,则可以保持原样。如果要将
    PhpRedis
    用作客户端,则需要重命名别名

  • 根据我是否重命名或删除别名,这将如何影响使用Redis

    如果选择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;
        }
    }