我已经通过添加"predis/predis":"~1.0"
,
然后为了测试,我添加了以下代码:
public function showRedis($id = 1)
{
$user = Redis::get('user:profile:'.$id);
Xdd($user);
}
在app / config / database.php中我有:
'redis' => [
'cluster' => false,
'default' => [
'host' => env('REDIS_HOST', 'localhost'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
],
它会抛出以下错误:No connection could be made because the target machine actively refused it. [tcp://127.0.0.1:6379]
我在项目中使用virtualhost
。
使用Xampp with windows
。
答案 0 :(得分:5)
首先确保Redis实际上是通过打开powershell并键入netstat -aon | more
来侦听该端口(此命令可能需要在功能中启用或以某种方式安装)。如果正在侦听,请检查防火墙设置。如果没有收听,请确保Redis已启动并配置为侦听该端口。
看起来predis/predis
只是一个客户端库。请参阅https://packagist.org/packages/predis/predis。
您需要安装Redis服务器,但它似乎在Windows上不受官方支持。见http://redis.io/download。根据该页面上的信息,看起来这里有Redis的Win64端口https://github.com/MSOpenTech/redis。
如果在此之后仍无效,请使用您看到的新错误更新您的问题。
答案 1 :(得分:0)
参考解决方案:https://rapidsol.blogspot.com/2018/10/php-fatal-error-uncaught.html
这表明您的服务器不接受来自外部的连接。您需要提供Redis服务器的IP。
$client = new Predis\Client('tcp://192.168.1.103:6379');
//$client = new Predis\Client();
$client->set('foo', 'bar');
$value = $client->get('foo');
echo $value; exit;
如果问题仍然存在,请尝试以下步骤。
所以您需要编辑: $ sudo vi /usr/local/etc/redis.conf
并找到行绑定127.0.0.1 :: 1 并将其更改为#bind 127.0.0.1 :: 1 然后找到线保护模式是 然后将其更改为保护模式否
然后重新启动Redis服务器
答案 2 :(得分:0)
我在Ubuntu 18.04中遇到了这个问题
我在本地系统中安装了redis,解决了。
sudo apt-get install redis-server