(已经解决) 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 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

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

4年前 评论
Epona 4年前
miaotiao (楼主) 4年前
mengdodo 4年前
Epona 4年前
miaotiao (楼主) 4年前
miaotiao (楼主) 4年前
讨论数量: 26

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上面有相关的设置

4年前 评论
miaotiao (楼主) 4年前
CasperNan (作者) 4年前
miaotiao (楼主) 4年前

请问5.5版本支持把predis修改成phpredis吗?

4年前 评论
miaotiao (楼主) 4年前

请问一下,修改之后,如何验证当前使用的是phpredis还是predis,有什么对象,或方法来判断吗?

3年前 评论
waney 3年前
levi (作者) 3年前
waney 3年前
miaotiao (楼主) 3年前
levi (作者) 3年前
levi (作者) 3年前
miaotiao (楼主) 3年前

请问laravel5.2怎么切换到phpredis啊

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!