(已经解决) Laravel Redis predis 切换到 phpredis

解决办法

  • 首先,设置 .env 文件 REDIS_CLIENT=phpredis 或者 config/database.php 文件 redis.client = phpredis,来让 redis 使用 phpredis 的连接方式。
  • 然后,重命名或者删除 config/app.php 文件里 'Redis' => Illuminate\Support\Facades\Redis::class,

原理

首先设置连接方式就不说了。

至于为什么要重命名,是因为 在 framework\src\Illuminate\Redis\Connectors\PhpRedisConnector.php 文件中的 createClient 方法会对当前的 Redis 对象进行验证。如果当前名为 Redis 的对象是 Illuminate\Support\Facades\Redis 的实例,就会报 Please remove or rename the Redis facade alias in your "app" configuration file in order to avoid collision with the PHP Redis extension.。通过重命名或者删除之后,在该文件里的 Redis 对象会是 redis 扩展的对象,进而使用 Redis 扩展进行连接了。

可能的问题

Class 'Redis' not found

注意这个问题,可能你的 redis 扩展没有安装正确。或者!!!最重要的来了!!!你的命令行使用的 php 版本和网站的 php 版本不一!!!命令行使用的没有安装 redis 扩展!!!

以下为原文

问题描述

{note} 如果你是通过 PECL 安装 Redis PHP 扩展,就需要重命名 config/app.php 文件里 Redis 的别名。

我看 laravel 原文也是这样写,但是我应该怎么做?可以 show 一下 code,让我看看么?

Laravel Redis 切换到 phpredis

laravel 的版本是 5.8 ,上图是使用laravel-admin 中 redis 的插件,按照下面的方法操作后报的错:

config/app.php > 'aliases'\
去掉 'Redis' => '...' 去掉这行

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案

config/app.php > 'aliases'
去掉 'Redis' => '...'去掉这行

4个月前 评论
Epona 4个月前
miaotiao (楼主) 4个月前
mengdodo 4个月前
Epona 4个月前
miaotiao (楼主) 4个月前
miaotiao (楼主) 4个月前
讨论数量: 5

config/app.php > 'aliases'
去掉 'Redis' => '...'去掉这行

4个月前 评论
Epona 4个月前
miaotiao (楼主) 4个月前
mengdodo 4个月前
Epona 4个月前
miaotiao (楼主) 4个月前
miaotiao (楼主) 4个月前

file
env 文件里面设置这个就可以了

4个月前 评论
miaotiao (楼主) 4个月前

把config下的aliases下的Redis 重新命名下 比如Redis2 就行了

4个月前 评论

env文件中只改CACHE_DRIVER这个为redis 然后按照文档上面写的改成如下

# config/database.php
   'client' => env('REDIS_CLIENT', 'phpredis'),

        'options' => [
            'cluster' => env('REDIS_CLUSTER', 'phpredis'),
            'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'),
        ],

如果要用redis存session 可以去github中的PHP Session handler上面有相关的设置

3个月前 评论
miaotiao (楼主) 3个月前
CasperNan (作者) 3个月前
miaotiao (楼主) 2个月前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!