首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非静态方法Redis::get()不能在Laravel5.4中静态调用?

非静态方法Redis::get()不能在Laravel5.4中静态调用?
EN

Stack Overflow用户
提问于 2017-09-14 07:12:41
回答 3查看 7.7K关注 0票数 8

我正在使用Redis来存储数据,在我的本地系统中,一切都很正常。我已经成功地安装了redis,也在laravel中使用此命令,composer require /predis也安装了Redis窗口。现在,当我在Redis中存储数据时:-

代码语言:javascript
复制
Redis::set('first',"My first Test"); // put data in Redis key
echo Redis ::get('first'); // get data

以上代码在我的本地系统中运行良好。当我试图在活动服务器中使用此代码时,它将显示以下错误:-

请帮我解决这个问题。我们正在使用amazon-ec2服务器,谢谢:)

EN

回答 3

Stack Overflow用户

发布于 2017-11-06 15:25:38

我也有过同样的问题。但我相信它与php 7有关,而不是Larevel 5.4,因为我使用的是Laravel5.1,我仍然有问题。

我偶然发现了两个解决方案

  1. 如果要静态调用Redis方法,请使用use Illuminate\Support\Facades\Redis;而不是use Redis;
  2. 更改为动态调用

$redis = new Redis(); $redis->set('boo','Have beer and relax!') $redis->get('boo');

票数 26
EN

Stack Overflow用户

发布于 2018-08-08 10:15:25

  • 只需从您的extension=php_redis.dll中删除或注释掉php.ini
  • Laravel和服务器Redis与名称"Redis“发生冲突。
  • 这会起作用的
票数 3
EN

Stack Overflow用户

发布于 2020-12-16 12:36:04

在Laravel数据库配置中,您可以为Redis处理程序定义一个客户端。安装predis之后,您的Redis数据库配置应该如下所示

代码语言:javascript
复制
'redis' => [

           'client' => 'predis',

           'cluster' => false,

           'default' => [
                  'host' => env('REDIS_HOST', 'localhost'),
                  'password' => env('REDIS_PASSWORD', null),
                  'port' => env('REDIS_PORT', 6379),
                  'database' => 0,
           ],

Redis外观的PhpRedis扩展和Laravel别名是相同的,这就造成了这个问题。如果要使用PhpRedis扩展,则需要更改数据库配置中在app.php和client中定义的别名关键字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46212732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档