Maison > Article > base de données > principe du cluster Redis
Redis est un no-sql typique, c'est-à-dire une base de données non relationnelle qui stocke des paires clé-valeur comme un dictionnaire Python. Il fonctionne en mémoire
, il est donc très approprié pour. servir de cache à l'ensemble de l'architecture Internet entre les différents niveaux, comme la couche de transfert à 4 couches de lvs et la couche proxy à 7 couches de nginx
, en particulier. la couche d'application de l'architecture lnmp telle que php-fpm ou Tomcat vers mysql Créer un cache entre eux pour réduire la pression sur la base de données
Car une partie considérable des données n'est qu'une simple correspondance clé-valeur, et dans l'activité réelle, elle évolue souvent rapidement sur une courte période de temps
Si vous utilisez une base de données relationnelle telle que MySQL pour le stockage, l'accès à la base de données sera considérablement augmenté, ce qui entraînera une lourde charge sur la base de données. Parce que la plupart de toutes les exigences finiront par converger vers la base de données
, donc si vous voulez la stabilité de l'entreprise, alors résolvez la base de données. La pression est la clé, donc la plupart des solutions consistent désormais à utiliser des solutions multi-niveaux sans sql à tous les niveaux au-dessus de la couche de base de données
comme Memcache Redis, etc. pour fournir une mise en mémoire tampon pour la base de données
Redis Cluster
Redis Cluster est un installation d'installation qui peut partager des données entre plusieurs nœuds Redis.
Redis Cluster ne prend pas en charge les commandes Redis qui doivent traiter plusieurs clés en même temps, car l'exécution de ces commandes nécessite de déplacer des données entre plusieurs nœuds Redis, et dans des conditions de charge élevée, ces commandes ralentiront le cluster Redis. performances et provoquer un comportement imprévisible.
Le cluster Redis offre un certain degré de disponibilité grâce au partitionnement : même si certains nœuds du cluster échouent ou ne peuvent pas communiquer, le cluster peut continuer à traiter les demandes de commandes.
Le cluster Redis offre les deux avantages suivants :
La possibilité de diviser automatiquement les données en plusieurs nœuds.
La possibilité de continuer à traiter les demandes de commandes lorsque certains nœuds du cluster échouent ou ne peuvent pas communiquer.
Principe du cluster
Tous les nœuds Redis sont interconnectés les uns aux autres (mécanisme PING-PONG) et un protocole binaire est utilisé en interne pour optimiser la vitesse de transmission et la bande passante.
La défaillance d'un nœud ne prend effet que lorsque plus de la moitié des nœuds du cluster détectent une défaillance.
Le client est directement connecté au nœud redis, sans avoir besoin d'une couche proxy intermédiaire. Le client n'a pas besoin de se connecter à tous les nœuds du cluster, il suffit de se connecter à n'importe quel nœud disponible du cluster.
redis-cluster mappe tous les nœuds physiques sur l'emplacement [0-16383] Le cluster est responsable de la maintenance du nœud<->slot<->value
16384 est intégré au cluster Redis. Un emplacement de hachage, lorsqu'une clé-valeur doit être placée dans le cluster Redis, redis utilise d'abord l'algorithme crc16 pour calculer un résultat pour la clé, puis calcule le reste du résultat à 16384, de sorte que chaque clé corresponde à un nombre compris entre 0 et 16383 emplacements de hachage entre, redis mappera les emplacements de hachage sur différents nœuds à peu près de manière égale en fonction du nombre de nœuds
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!