Maison  >  Article  >  base de données  >  Tutoriel pour débutants sur la création de clusters Redis

Tutoriel pour débutants sur la création de clusters Redis

王林
王林avant
2021-01-04 09:28:021970parcourir

Tutoriel pour débutants sur la création de clusters Redis

construction de cluster redis

(Partage vidéo d'apprentissage : tutoriel vidéo redis)

Avant d'introduire le contenu formel , commençons par présenter les étapes de création de la version autonome de Redis.

  1. Téléchargez le package compressé redis, puis décompressez le fichier compressé ;
  2. Entrez dans le répertoire du fichier redis décompressé (vous pouvez voir le fichier Makefile à ce moment) et compilez le redis fichier source ;
  3. Installez les fichiers sources redis compilés dans le répertoire /usr/local/redis. S'il n'y a pas de répertoire redis dans le répertoire /local, un nouveau répertoire redis sera automatiquement créé ; 🎜>Entrez dans le répertoire /usr/local/redis/bin, démarrez redis directement dans ./redis-server (redis est démarré au front-end à ce moment-là)
  4. Changez le mode de démarrage de redis en démarrage backend ; La méthode spécifique est la suivante : placez le redis sous le fichier redis décompressé. Copiez le fichier .conf dans le répertoire /usr/local/redis/bin, puis modifiez le fichier redis.conf -> daemonize : no pour démoniser : yse ; >
  5. Passez ./redis dans le répertoire /bin -server redis.conf démarre redis (démarrage en arrière-plan pour le moment).
  6. En résumé, l'installation et le démarrage de la version autonome de redis sont terminés.
  7. Pour les étapes détaillées avec des images, veuillez vous référer à -> Premiers pas avec Redis

  8. Veuillez me pardonner d'être verbeux, ok, revenons à ce sujet - construire un cluster Redis !

  9. 1. Introduction au cluster Redis

redis est un système de stockage de valeurs clés open source qui a été favorisé par la faveur d'Internet. de l'entreprise. Avant la version 3.0 de Redis, il ne prenait en charge que le mode singleton et ne prenait en charge que les clusters dans la version 3.0 et ultérieure. J'utilise ici la version 3.0.0

    Le cluster Redis adopte le mode P2P, qui est complètement décentralisé et ne le fait pas. Il existe un nœud central ou un nœud d'agent ;
  • Le cluster Redis n'a pas d'entrée unifiée. Lorsque le client se connecte au cluster, il peut se connecter à n'importe quel nœud du cluster avec lequel il communique. les uns les autres (mécanisme PING-PONG), chaque nœud est une instance redis
  • Afin d'obtenir une haute disponibilité du cluster, c'est-à-dire de déterminer si le nœud est sain (peut-il être utilisé normalement) ; , redis-cluster a un tel mécanisme de tolérance aux pannes de vote : si plus de la moitié des nœuds du cluster votent qu'un nœud est en panne, alors ce nœud échouera. C'est un moyen de déterminer si un nœud est en panne ;
  • Alors, comment déterminer si le cluster est en panne ? -> Si un nœud du cluster est en panne et que le nœud n'a pas de nœud esclave (nœud de sauvegarde) ), alors ceci Le cluster est en panne. C'est un moyen de déterminer si le cluster est en panne ;
  • Alors pourquoi le cluster tombe-t-il en panne lorsqu'un nœud est en panne (il n'y a pas de nœud esclave) ? -> Parce que le cluster dispose de 16 384 emplacements intégrés (emplacements de hachage) et que tous les nœuds physiques sont mappés sur ces 16 384 [0-16 383] emplacements, ou que ces emplacements sont répartis de manière égale sur chaque nœud. Lorsqu'il est nécessaire de stocker une donnée (clé-valeur) dans le cluster Redis, redis exécutera d'abord l'algorithme crc16 sur la clé puis obtiendra un résultat. Calculez ensuite le reste de ce résultat à 16384. Ce reste correspondra à l'un des emplacements [0-16383], puis déterminez dans quel nœud la valeur-clé est stockée. Par conséquent, une fois qu'un nœud raccroche, l'emplacement correspondant au nœud ne peut plus être utilisé, ce qui entraînera un dysfonctionnement du cluster.
  • Pour résumer, chaque cluster Redis peut théoriquement avoir jusqu'à 16384 nœuds.
  • 2. Environnement requis pour la construction du cluster

2.1 Le cluster Redis nécessite au moins 3 nœuds, car le mécanisme de tolérance aux pannes de vote nécessite que plus de la moitié des nœuds pensent que un certain nœud est en panne, il est en panne, donc 2 nœuds ne peuvent pas former un cluster. 2.2 Pour assurer la haute disponibilité du cluster, chaque nœud doit disposer d'un nœud esclave, c'est-à-dire un nœud de sauvegarde, le cluster Redis nécessite donc au moins 6 serveurs. Parce que je n'ai pas beaucoup de serveurs et que je ne peux pas démarrer autant de machines virtuelles, donc ce que je construis ici est un cluster pseudo-distribué, c'est-à-dire qu'un serveur exécute virtuellement 6 instances Redis et que le numéro de port est modifié à (7001-7006). Bien sûr, l'environnement de production réel. La configuration du cluster Redis est la même qu'ici. 2.3 Installer Ruby

3. Les étapes spécifiques pour créer un cluster sont les suivantes (remarque pour désactiver le pare-feu)

3.1 Créez un nouveau répertoire redis-cluster dans le fichier usr/ répertoire local pour stocker les nœuds du cluster
3.2 Copiez tous les fichiers du répertoire bin sous le répertoire redis dans le répertoire /usr/local/redis-cluster/redis01. Ne vous inquiétez pas, il n'y a pas de redis01. répertoire ici, il sera créé automatiquement. La commande d'opération est la suivante (notez le chemin actuel) :

cp -r redis/bin/ redis-cluster/redis01

Tutoriel pour débutants sur la création de clusters Redis
3.3 Supprimez le fichier d'instantané dump.rdb dans le répertoire redis01 et modifiez le fichier redis.cnf dans le répertoire Plus précisément, modifiez deux endroits : l'un consiste à changer le numéro de port en 7001, et l'autre est d'ouvrir. En mode création de cluster, ouvrez simplement les commentaires. Comme le montre la figure ci-dessous :
Supprimez le fichier dump.rdb
Tutoriel pour débutants sur la création de clusters Redis
Modifiez le numéro de port en 7001, la valeur par défaut est 6379
Tutoriel pour débutants sur la création de clusters Redis
Ouvrez le commentaire du cluster -enabled yes
Tutoriel pour débutants sur la création de clusters Redis
3.4 Copiez 5 copies du fichier redis-cluster/redis01 dans le répertoire redis-cluster (redis02-redis06), créez 6 instances redis et simulez 6 nœuds du cluster Redis. Modifiez ensuite les numéros de port dans redis.conf sous les cinq fichiers restants en 7002-7006 respectivement. Comme le montre la figure ci-dessous :
Créez le répertoire redis02-06
Tutoriel pour débutants sur la création de clusters Redis

Modifiez le numéro de port du fichier redis.conf en 7002-7006 respectivement
Tutoriel pour débutants sur la création de clusters Redis
3.5 Puis démarrez Comme démarrer tous les nœuds Redis un par un est trop compliqué, voici un fichier de script pour démarrer les nœuds Redis par lots. La commande est start-all.sh Le contenu du fichier est le suivant :

cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..
<.>3.6 Créer le fichier de script de démarrage Après cela, vous devez modifier les autorisations du script pour qu'il puisse être exécuté. Les instructions sont les suivantes :


chmod +x start-all.sh

Tutoriel pour débutants sur la création de clusters Redis<.>
3.7 Exécutez le script start-all.sh pour démarrer 6 nœuds redis


Tutoriel pour débutants sur la création de clusters Redis
3.8 ok jusqu'à présent, 6 nœuds redis ont été démarrés avec succès. Ensuite, le cluster sera officiellement lancé. Ce qui précède sont les conditions préparatoires. Ne pensez pas que ce soit gênant car les images semblent longues. En fait, les étapes ci-dessus ne sont qu'une phrase : créez 6 instances Redis (6 nœuds) et démarrez-les. Pour construire un cluster, vous devez utiliser un outil (fichier script), qui se trouve dans le code source du fichier de décompression redis. Étant donné que cet outil est un fichier de script Ruby, l'exécution de cet outil nécessite un environnement d'exécution Ruby, ce qui équivaut à l'exécution du langage Java sur la JVM. Vous devez donc installer Ruby. Les instructions sont les suivantes :

yum install ruby

Ensuite, vous devez installer les packages liés à Ruby sur le serveur. J'utilise redis-3.0.0.gem ici. attention à ceci : la version de Redis et Ruby. Il est préférable de garder la version du package cohérente.


Installez le package Ruby sur le serveur : vous devez d'abord le télécharger puis l'installer, comme indiqué sur la figure


La commande d'installation est la suivante : Tutoriel pour débutants sur la création de clusters Redis

gem install redis-3.0.0.gem

Tutoriel pour débutants sur la création de clusters Redis3.9 À l'étape précédente, l'environnement d'exécution et le package Ruby requis par l'outil Ruby ont été installés. Ensuite, vous devez copier le Ruby ​​. outil de script dans le répertoire usr/local/redis-cluster. Alors, où est cet outil de script Ruby ? Comme mentionné précédemment, dans le code source du fichier de décompression redis, c'est-à-dire le fichier redis-trib.rb dans le répertoire redis/src.


Tutoriel pour débutants sur la création de clusters Redis
3.10 Copiez l'outil ruby ​​​​(redis-trib.rb) dans le répertoire redis-cluster Les instructions sont les suivantes : Tutoriel pour débutants sur la création de clusters Redis

cp redis-trib.rb /usr/local/redis-cluster

Ensuite. utilisez le fichier script Pour construire un cluster, les instructions sont les suivantes :

./redis-trib.rb create --replicas 1 47.106.219.251:7001 47.106.219.251:7002 47.106.219.251:7003 47.106.219.251:7004 47.106.219.251:7005 47.106.219.251:7006

Remarque : Ici, vous devez saisir l'adresse IP correspondante en fonction de l'IP de votre propre serveur !


Tutoriel pour débutants sur la création de clusters RedisIl y a un endroit où vous devez saisir manuellement oui


À ce stade, le cluster Redi est construit avec succès ! Veuillez faire attention au dernier paragraphe du texte, qui montre les emplacements (emplacements de hachage) attribués à chaque nœud. Il y a un total de 6 nœuds ici, dont 3 sont des nœuds esclaves, donc les 3 nœuds maîtres sont mappés 0-5460, 5461. -10922, 10933-16383solts. Tutoriel pour débutants sur la création de clusters Redis
3.11 Enfin, connectez le nœud du cluster, connectez-vous simplement à n'importe lequel :

redis01/redis-cli -p 7001 -c

注意:一定要加上-c,不然节点之间是无法自动跳转的!如下图可以看到,存储的数据(key-value)是均匀分配到不同的节点的:

Tutoriel pour débutants sur la création de clusters Redis

四、结语
呼~~~长舒一口气…终于搭建好了Redis集群。
整个过程其实挺简单,本篇主要正对入门级别的小伙伴,插入了很多图片,所以显得冗长,希望大家多多理解,如果不当之处,还望及时指正~

最后,加上两条redis集群基本命令:
1.查看当前集群信息

cluster info

2.查看集群里有多少个节点

cluster nodes

相关推荐:redis数据库教程

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer