Maison >développement back-end >Problème PHP >Comment appeler un cluster Redis en php

Comment appeler un cluster Redis en php

(*-*)浩
(*-*)浩original
2019-09-29 14:15:432592parcourir

Il existe actuellement deux extensions Redis principales pour php que nous utilisons :

Comment appeler un cluster Redis en php

phpredis, qui utilise c Un outil efficace extension de PHP ; predis, qui est écrite en code PHP et est très utilisée.

Méthode phpredis (extension PHP) (apprentissage recommandé : Tutoriel vidéo PHP)

Méthode autonome phpredis

<?php
$client = new Redis();
$client->connect(&#39;10.30.5.163&#39;, &#39;7000&#39;);
echo $client->get(&#39;new_item_key:d89b561fb759fd533a8c2781ef15dd5f&#39;);

le cluster PHPredis utilise

<?php
$redis_list = [&#39;10.30.5.162:7000&#39;,&#39;10.30.5.163:7000&#39;,&#39;10.30.5.163:7001&#39;];
$client = new RedisCluster(NUll,$redis_list);
echo $client->get(&#39;new_item_key:d89b561fb759fd533a8c2781ef15dd5f&#39;);

Description du code

Passez NULL pour le premier paramètre, ne me demandez pas, je ne le fais pas Je ne sais pas pourquoi. Quoi qu’il en soit, je n’ai pas trouvé le document et je n’ai pas compris cet article.

Le deuxième paramètre est la liste des serveurs maîtres du cluster Redis auquel nous devons nous connecter. Nous avons 3 maîtres, remplissez-en simplement 3, vous pouvez remplir un nœud maître, ou même remplir un nœud esclave, mais les performances sont différentes, voir Partie 4

Principe du clusterPourquoi redisCluster peut-il être utilisé en remplissant n'importe quelle adresse de nœud ?

En mode cluster, lorsque Redis reçoit une commande liée à la clé, il calcule d'abord l'emplacement correspondant à la clé,

Si le nœud esclave est initialisé, la commande redis sera d'abord envoyée au nœud esclave

Le nœud esclave trouve le nœud correspondant en fonction du slot Si le nœud est lui-même, la commande clé. est traité ;

Si ce n'est pas lui-même, une erreur de redirection MOVED informe le client de demander le bon nœud. Ce processus est appelé redirection MOVED

Comment appeler un cluster Redis en phpLes informations de redirection contiennent le slot correspondant à la clé et l'adresse du nœud responsable du slot selon ces informations

<.> Le client peut lancer une requête vers le bon nœud

Le client PHPREDIS peut directement lancer une requête vers le nœud où se trouve la clé en fonction des informations de redirection pour obtenir les données

Utiliser le mode cluster Predis

<?php
use Predis\Client;
require __DIR__ . &#39;/../vendor/autoload.php&#39;;
$redis_list = [
        &#39;tcp://10.30.5.163:7000&#39;,
        &#39;tcp://10.30.5.163:7001&#39;,
        &#39;tcp://10.30.5.162:7000&#39;
];
$redis = new Client($redis_list, [&#39;cluster&#39;=>&#39;redis&#39;]);
echo $redis->get(&#39;new_item_key:d89b561fb759fd533a8c2781ef15dd5f&#39;)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn