Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Quelles sont les meilleures pratiques pour configurer le cluster redis


Quelles sont les meilleures pratiques pour configurer le cluster redis


Le cluster Redis est une solution populaire pour la mise à l'échelle des déploiements Redis pour obtenir une disponibilité plus élevée, une tolérance aux pannes et un décapement des données sur plusieurs nœuds. Une bonne configuration du cluster redis implique plusieurs meilleures pratiques qui garantissent des performances, une fiabilité et une gestion optimales.

Architecture en cluster et configuration de nœud

Le cluster Redis nécessite au moins trois nœuds maîtres pour fonctionner de manière fiable. Idéalement, un cluster de production doit contenir un minimum de six nœuds, chaque maître ayant une ou plusieurs répliques. Cette configuration garantit une haute disponibilité, permettant un basculement automatique au cas où un nœud maître échoue. Chaque nœud s'exécute en mode cluster et doit avoir des configurations spécifiques activées, y compris:

- `Yes compatible en cluster pour activer le mode de cluster sur chaque instance redis.
- «Cluster-Config-File» spécifiant le fichier où l'état du nœud de cluster est enregistré (par exemple, `nœuds.conf`).
- «Cluster-node-timeout» définissant le temps maximum, un nœud peut être inaccessible avant d'être considéré comme échoué (généralement réglé sur 5000 à 15000 millisecondes).

Le «Cluster-Config-File» est géré par Redis automatiquement et ne doit pas être modifié manuellement, car il maintient des informations critiques d'état telles que les ID de nœud, les mappages et la possession de créneaux. Chaque nœud s'attribue un ID de nœud unique au démarrage, qui persiste au cours de sa durée de vie même si IP ou le port change.

Configuration du matériel et du réseau

Les nœuds doivent être déployés sur des machines physiques ou virtuelles distinctes pour éviter les points de défaillance uniques. La connectivité réseau entre les nœuds doit permettre à la fois les ports de communication client (généralement TCP 6379 ou le port de service utilisé) et le port de bus de cluster (un deuxième port TCP Port de service + 10000, par exemple, 16379) pour la communication entre le cluster.

Configurez soigneusement les interfaces réseau et les pare-feu pour permettre ce trafic entre les nœuds et éventuellement entre les clients et les nœuds de cluster. La définition de la directive `Bind` à des IP privés spécifiques plutôt que de se lier à toutes les interfaces améliore la sécurité.

Persistance et durabilité des données

Activer les mécanismes de persistance tels que les instantanés RDB ou AOF (fichier d'ajout uniquement) en fonction de la durabilité des données et des compromis requis. L'AOF offre une meilleure durabilité en enregistrant chaque opération d'écriture, mais peut ajouter la latence et les frais généraux IO. La combinaison des instantanés RDB avec AOF peut aider à équilibrer les performances et la durabilité.

La directive «APPENDONLY YES» permet le mode AOF. Ces paramètres doivent être soigneusement réglés en fonction des modèles de charge de travail et des fenêtres de perte de données acceptables.

Politiques de gestion de la mémoire et d'expulsion

Configurez le paramètre `MaxMemory» pour vous assurer que Redis s'inscrit dans la mémoire disponible sur le nœud. Sélectionnez une politique d'expulsion appropriée à l'aide de «MaxMemory-Policy» telle que «AllKeys-Lru» pour utiliser un algorithme le moins récemment utilisé sur toutes les touches lorsque les limites de mémoire sont atteintes. Une surveillance cohérente de l'utilisation de la mémoire et des rapports Hit / Miss est essentielle.

Le cluster Redis fonctionne le mieux lorsque l'ensemble de données s'intègre pleinement dans la mémoire sur chaque nœud. Évitez l'échange excessif ou le surcocomètre de la mémoire.

Gestion des machines à sous et distribution de données

Le cluster divise l'espace de clé en 16 384 emplacements de hachage qui sont distribués sur tous les nœuds maîtres. Lors de la création du cluster, assurez-vous que tous les emplacements sont couverts par un nœud maître. Les clients doivent être consacrés au cluster pour acheminer les requêtes vers le nœud correct en fonction du calcul des emplacements de hachage.

Évitez les opérations impliquant plusieurs clés mappées sur différentes emplacements, car celles-ci nécessitent des commandes à fente croisée qui sont limitées ou moins efficaces.

Utilisez des outils comme `redis-Cli --cluster Create` to Bootstrap Clusters avec une allocation de machines à sous et une affectation de réplique appropriées automatiquement.

Configuration du client pour la sensibilisation aux cluster

Configurer les bibliothèques clients pour gérer les changements de topologie Redis Cluster gracieusement. De nombreuses bibliothèques de clients fournissent une prise en charge des cluster, y compris la découverte automatique et la reconfiguration des nœuds de cluster lorsqu'ils échouent ou remanient les emplacements. Cela empêche les erreurs du client et améliore la fiabilité pendant les nœuds de nœud ou les opérations de mise à l'échelle.

Les clients doivent être configurés pour réessayer sur déplacé ou demander des redirections et maintenir des vues mises à jour de l'état de cluster.

Considérations de sécurité

Sécurochez les nœuds de cluster en activant l'authentification du mot de passe (directive `BesiSePass`, limitant l'accès réseau via des règles de pare-feu et en restreignant les interfaces exposées via la configuration` bind`. Utilisez le cryptage TLS si possible pour protéger les données en transit.

Désactiver le mode protégé lors de l'exécution de Redis en mode cluster, mais assurez-vous que les configurations de mise en réseau isolent le cluster des clients non fiables.

Surveillance et maintenance

Implémentez la surveillance complète de la santé des grappes, y compris la disponibilité des nœuds, la latence, l'utilisation de la mémoire, le retard de réplication et les modifications de l'état de cluster. Des outils tels que Redis Sentinel, des plates-formes de surveillance tierces ou des solutions de fournisseurs de cloud doivent faire partie de la stratégie opérationnelle.

Testez régulièrement les mécanismes de basculement et effectuez des redémarrages de nœuds contrôlés ou des exercices de mise à l'échelle pour vérifier la résilience des grappes.

réglage des performances

Tune Redis et la configuration du cluster en fonction des spécificités de la charge de travail:

- minimiser les commandes de blocage et utiliser des scripts Pipelining ou LUA pour optimiser le débit.
- Ajustez «Cluster-Node-Timeout» en fonction des caractéristiques de latence du réseau pour éviter les faux raids.
- Utilisez un hachage cohérent et une dénomination des clés intelligentes pour optimiser les distributions de créneaux.
- Évitez les grandes clés ou les valeurs et envisagez de diviser les gros objets en morceaux plus petits.
- Utilisez les mécanismes natifs du cluster Redis pour l'échelle horizontalement en ajoutant ou en supprimant les nœuds et en rééquilibrant les emplacements.

Sauvegarde et récupération

Concevoir des stratégies de sauvegarde alignées sur la configuration du cluster. Utilisez des instantanés RDB périodiques à partir de nœuds maîtres ou de répliques et de stocker des sauvegardes en externe. Évitez de restaurer les sauvegardes directement sur un cluster en direct sans la synchronisation de l'état de l'emplacement et du nœud approprié.

Pour la récupération, utilisez les procédures recommandées par Redis pour reconstruire les clusters à partir de configurations et de sauvegardes enregistrées.

Résumé

Meilleures pratiques pour la couverture de configuration du cluster redis:

- Configuration au moins trois nœuds maîtres avec des répliques pour le basculement.
- Assurer les directives de configuration liées à la cluster appropriées (`Cluster-Inabled`,` Cluster-Config-File`, `Cluster-node-timeout`).
- Déploiement des nœuds sur du matériel approprié avec des paramètres réseau corrects pour la communication de bus client et de cluster.
- Activer la persistance et le réglage des politiques de mémoire et d'expulsion pour faire correspondre les demandes de charge de travail.
- Gérer efficacement les créneaux de hachage et s'assurer que les clients sont consacrés au cluster.
- sécuriser le cluster avec des contrôles d'authentification et de réseau.
- surveiller régulièrement la santé et les performances des grappes.
- Planifier attentivement les opérations de sauvegarde, de récupération et de mise à l'échelle.

L'application de ces meilleures pratiques garantit un environnement de cluster Redis robuste, évolutif et très disponible adapté aux charges de travail de production. Les sujets ci-dessus englobent des considérations de fonctionnement, architecturales et de sécurité essentielles pour les déploiements de cluster Redis.