Redis est une base de données clé-valeur non relationnelle et hautes performances avec des fonctionnalités telles qu'une lecture et une écriture rapides, la prise en charge de plusieurs structures de données et la persistance des données. Elle est largement utilisée dans les caches, les compteurs, les files d'attente de messages et d'autres scénarios. Dans les applications réelles, les performances d'une seule instance Redis présentent certaines limites. Un cluster Redis doit donc être utilisé pour obtenir une expansion horizontale et une haute disponibilité. Cet article présentera la construction et l'utilisation du cluster Redis.
1. Qu'est-ce que Redis Cluster
Redis Cluster est un système distribué composé de plusieurs nœuds Redis. Chaque nœud peut gérer les demandes des clients. La cohérence des données est assurée par la réplication et le partage des données entre les nœuds. Le cluster Redis adopte le mode de partitionnement pour réaliser un stockage distribué des données. Les données sont dispersées entre plusieurs nœuds. Chaque nœud ne stocke qu'une partie des données. Différentes clés sont mappées à différents nœuds via un certain algorithme.
Le cluster Redis comprend principalement deux types de nœuds : le nœud maître et le nœud esclave. Le nœud maître est chargé de recevoir les demandes d'écriture des clients, de répliquer les données du nœud maître à partir des nœuds esclaves et de recevoir les demandes de lecture des clients. Une relation de réplication maître-esclave peut également être formée entre les nœuds esclaves pour obtenir une redondance et un basculement de nœud. Lorsque le nœud maître tombe en panne, l'un des nœuds esclaves deviendra automatiquement le nœud maître pour assurer la disponibilité du cluster.
2. Construction du cluster Redis
1. Préparation de l'environnement
Avant de commencer à construire le cluster Redis, vous devez préparer l'environnement suivant :
(1) Serveur Linux : il peut être construit à l'aide de machines virtuelles ou d'hôtes cloud. . Il est recommandé de préparer au moins 3 serveurs.
(2) Package d'installation Redis : Téléchargez la dernière version stable du package d'installation Redis depuis le site officiel de Redis (https://redis.io/download).
2. Installez Redis
Extrayez le package d'installation Redis téléchargé sur le serveur, compilez et installez Redis :
tar xvzf redis-6.0.7.tar.gz
cd redis-6.0.7
make
make install
Une fois l'installation terminée, vous pouvez utiliser la commande redis-server pour démarrer le serveur Redis et utiliser la commande redis-cli pour vous connecter au serveur Redis à des fins de test.
3. Configurer et démarrer le cluster Redis
La configuration du cluster Redis se fait via un fichier de configuration redis.conf. Créez des fichiers de configuration pour plusieurs nœuds Redis sur le serveur, nommés redis_7000.conf, redis_7001.conf, etc. Le contenu du fichier de configuration pour chaque nœud est le suivant :
port 7000
cluster-enabled yes
cluster-config-file nodes_7000.conf
cluster-node-timeout 5000
daemonize yes
logfile "/var/log/redis/redis.log"
pidfile "/var/run/redis/redis.pid"
dir "/var/lib/redis "
Parmi eux, port spécifie le numéro de port du nœud, cluster-enabled signifie activer le mode cluster, cluster-config-file spécifie le fichier de configuration du nœud, cluster-node-timeout spécifie le délai d'expiration pour la communication entre nodes et daemonize spécifie s'il faut utiliser le mode démon lors de l'exécution, logfile et pidfile spécifient respectivement les chemins des fichiers journaux et pid, et dir spécifie le chemin du fichier de données.
Après avoir modifié le fichier de configuration de chaque nœud, utilisez la commande redis-server pour démarrer le serveur Redis de chaque nœud.
4. Créez un cluster et ajoutez des nœuds
Utilisez la commande redis-cli pour vous connecter à n'importe quel nœud Redis et utilisez la commande cluster meet pour ajouter d'autres nœuds :
redis-cli -c -p 7000
cluster meet 127.0 .0.1 7001
cluster meet 127.0.0.1 7002
Utilisez ensuite la commande cluster addlots pour ajouter des emplacements à chaque nœud, par exemple :
cluster addlots 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Enfin, utilisez la commande cluster replicate comme Spécifiez un nœud maître à partir du nœud, par exemple :
cluster replicate
Remplacez le
3. Utilisation du cluster Redis
1. Opérations de lecture et d'écriture
Les opérations de lecture et d'écriture dans le cluster Redis sont les mêmes que les opérations Redis ordinaires. Vous pouvez utiliser redis-cli pour vous connecter à n'importe quel nœud, puis exécuter des commandes. tels que set et get. Par exemple :
redis-cli -c -p 7000
set name "Redis Cluster"
get name
2 Expansion et réduction
Vous pouvez utiliser les commandes cluster addlots et cluster delslots pour ajouter. ou supprimez des emplacements pour le cluster Redis, par exemple :
cluster addlots 1024
cluster delslots 0
Après avoir ajouté ou supprimé des emplacements, vous devez exécuter la commande de rééquilibrage du cluster pour réaffecter les emplacements.
3. Basculement et récupération
Le cluster Redis prend en charge la fonction de commutation automatique du nœud esclave vers le nœud maître après la défaillance du nœud maître. Vous pouvez utiliser la commande de basculement du cluster pour simuler la défaillance du nœud maître ou changer manuellement de maître-esclave. relation, par exemple :
basculement du cluster
réplication du cluster
basculement du cluster
Lorsque le maître Le nœud récupère, le nœud esclave sera automatiquement restauré sur le nœud esclave et communiquera avec les données de synchronisation du nœud maître.
4.Résumé
Cet article présente la construction et l'utilisation du cluster Redis. Le cluster Redis peut réaliser une expansion horizontale et une haute disponibilité, offrant une bonne solution pour le stockage de données à grande échelle et un accès simultané élevé. Cependant, l'établissement, l'exploitation et la maintenance du cluster Redis sont également relativement complexes, et la sauvegarde des données et la tolérance aux pannes doivent être bien faites. En utilisation réelle, il est nécessaire de choisir une solution de cluster Redis appropriée en fonction du scénario commercial et de l'échelle du système.
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!