gpt4 book ai didi

laravel - 我该如何解决 “Predis\ClientException : Command ' EXiSTS不是注册的Redis命令。 ”错误?

转载 作者:行者123 更新时间:2023-12-03 06:41:22 36 4
gpt4 key购买 nike

我在自定义提供程序中使用redis类,但在服务器上不起作用。

在本地没有任何问题,但我不明白为什么它在服务器上不起作用。

当我使用工匠命令时,出现此错误。

“Predis \ ClientException:命令'EXiSTS'不是注册的Redis命令。

在/var/www/vhosts/website.com/laravel_folder/website/vendor/predis/predis/src/Profile/RedisProfile.php:88
84 | {
85 | $ commandID = strtoupper($ commandID);
86 |
87 |如果(!isset($ this-> commands [$ commandID])){

88| throw new ClientException("Command '$commandID' is not a registered Redis command."); 89| } 90| 91| $commandClass = $this->commands[$commandID]; 92| $command = new $commandClass();



异常跟踪:

1个Predis \ Profile \ RedisProfile::createCommand(“EXiSTS”)
/var/www/vhosts/website.com/laravel_folder/website/vendor/predis/predis/src/Client.php:323

2 Predis \ Client::createCommand(“exists”)
/var/www/vhosts/website.com/laravel_folder/website/vendor/predis/predis/src/Client.php:314

请使用参数-v查看更多详细信息。


我的代码:
public function boot()
{
$redis = new Redis();

if ( !$redis->exists('activity_of_week') ) {
$redis->set('activity_of_week',serialize( Activity::ofWeek(10) ));
}

if ( !$redis->exists('popular_companies') ) {
$redis->set('popular_companies',serialize( TopRateCompanies::sortBy()->take(10) ));
}

$activityOfWeeks = $redis->get('activity_of_week');
$popularCompanies = $redis->get('popular_companies');

$popular = new PopularCategory();
$popularCategories = $popular->take(10);

View::composer('frontend.layout.footer', function ($view) use ($activityOfWeeks, $popularCompanies, $popularCategories) {
/**
* @var ViewAlias $view
*/

$keys = [ 'email' => 'contact-email',
'facebook' => 'facebook',
'instagram' => 'instagram',
'twitter' => 'twitter',
'youtube' => 'youtube',
'phone' => 'contact-phone',
];

$info = array_map( [$this,'contactInfo'],$keys );

$view->with('contact', $info)
->with('activityOfWeeks', $activityOfWeeks)
->with('popularCompanies', $popularCompanies)
->with('popularCategories', $popularCategories);
});
}

public function contactInfo($key)
{
return Settings::where('key',$key)->firstOrFail()->value;
}

请帮帮我 。

最佳答案

这是一个区域设置问题。我相信您在应用中使用的是土耳其语区域设置。这会导致strtoupper函数出现问题。

您可以在这里查看类似的问题:https://github.com/nrk/predis/issues/372

作为解决方案,如果您的情况可以接受,则可以尝试更改本地。或者根据问题的建议,您可以使用Laravel提供的Redis门面。 Redis::EXISTS像这样。

关于laravel - 我该如何解决 “Predis\ClientException : Command ' EXiSTS不是注册的Redis命令。 ”错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60701260/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com