(已经解决) 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' => '...' 去掉这行

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

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年前 评论

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