我看文档里面,那个predis 和 redis 有什么区别?
看文档有些不明白地方,predis 设置 aliases,不要与 redis重复
'Redis' => Illuminate\Support\Facades\Redis::class,
'RedisManager' => Illuminate\Support\Facades\Redis::class,
两者有什么区别吗?用法好像都一样的


关于 LearnKu
phpredis是用C写的原生扩展,需要通过pecl安装,或者自己手动编译源码,然后修改php.ini文件加载此扩展。predis是用php写的composer软件包,直接composer安装。相同点就是都可以完成与
Redis的通信和增删改查操作,并且两个都占用相同的\Redis完全限定名称。不同点就是一个是C写的原生扩展,一个是php写的软件包。
不能重复的那个问题,就是上面提到的字体加粗部分。如果你的php环境安装了
phpredis原生扩展和predis软件包都安装了,那么在你的config/database.php中redis.client就需要改为phpredis,这样在框架中调用\Redis类的时使用的是原生扩展。此时若你改为predis,那么框架在加载时,会加载predis的相关的变量定义,这其中就包括定义\Redis命名空间。但因为\Redis命名空间早已被原生扩展占用,导致系统报错。如果在已安装
phpredis原生扩展的环境中一定要用predis的话,解决办法就是改config/app.php中aliases数组里的Redis建名。或者自己 手动实例化一个predis实例出来用: