web-dev-qa-db-fra.com

Laravel : Redis Aucune connexion n'a pu être établie: [tcp: //127.0.0.1: 6379]

J'ai installé redis avec laravel en ajoutant "predis/predis":"~1.0",

Ensuite, pour tester, j'ai ajouté le code suivant:

public function showRedis($id = 1)
   {
      $user = Redis::get('user:profile:'.$id);
      Xdd($user);
   } 

Dans app/config/database.php, j'ai:

'redis' => [
        'cluster' => false,
        'default' => [
            'Host' => env('REDIS_Host', 'localhost'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => 0,
        ],

    ],

Il lève l'erreur suivante: No connection could be made because the target machine actively refused it. [tcp://127.0.0.1:6379]

J'utilise virtualhost pour le projet . J'utilise Xampp with windows.

7
Gammer

Tout d'abord, assurez-vous que Redis écoute réellement sur ce port en ouvrant powershell et en tapant netstat -aon | more (cette commande devra peut-être être activée dans les fonctionnalités ou installée d'une manière ou d'une autre). S'il écoute, vérifiez les paramètres de votre pare-feu. Si ce n'est pas le cas, assurez-vous que Redis est démarré et configuré pour écouter sur ce port.

Il semble que predis/predis est une bibliothèque cliente uniquement. Voir https://packagist.org/packages/predis/predis .

Vous devez installer le serveur Redis, mais il semble que ce n’est pas officiellement pris en charge sous Windows. Voir http://redis.io/download . Selon les informations de cette page, il semble y avoir un port Win64 pour Redis ici https://github.com/MSOpenTech/redis .

Si cela ne fonctionne toujours pas après cela, mettez à jour votre question avec la nouvelle erreur que vous voyez.

5
lps

Solution de référence: https://rapidsol.blogspot.com/2018/10/php-fatal-error-uncaught.html

Cela montre que votre serveur n'accepte pas les connexions de l'extérieur. Vous devez fournir l'adresse IP de votre serveur Redis.

$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;

si le problème persiste, essayez les étapes ci-dessous.

Il faut donc éditer: $ Sudo vi /usr/local/etc/redis.conf

et recherchez la liaison de ligne 127.0.0.1 :: 1 et remplacez-la par #bind 127.0.0.1 :: 1 puis recherchez la ligne en mode protégé yes .__, puis modifiez-la en mode protégé.

puis redémarrez le serveur Redis

0
flik