Maison > base de données > Redis > Comment configurer Redis Persistance (instantanés RDB, AOF)?

Comment configurer Redis Persistance (instantanés RDB, AOF)?

百草
Libérer: 2025-03-14 18:04:16
original
572 Les gens l'ont consulté

Comment configurer Redis Persistance (instantanés RDB, AOF)?

Pour configurer Redis Persistance, vous devez considérer les instantanés RDB (base de données Redis) et AOF (fichier append uniquement). Voici comment configurer chacun:

Instantanés RDB:

  1. Activer RDB: par défaut, RDB est activé. Vous pouvez le configurer dans le fichier redis.conf . Recherchez les lignes qui commencent par save pour définir la fréquence des instantanés.

     <code>save 900 1 save 300 10 save 60 10000</code>
    Copier après la connexion

    Ces lignes signifient que Redis enregistrera l'ensemble de données sur le disque si l'une des conditions suivantes est remplie:

    • 900 secondes (15 minutes) se sont écoulées et au moins 1 clé a changé.
    • 300 secondes (5 minutes) se sont écoulées et au moins 10 clés ont changé.
    • 60 secondes (1 minute) sont passées et au moins 10 000 clés ont changé.
  2. Nom et emplacement de fichier: vous pouvez également définir le nom et le chemin du fichier dans redis.conf :

     <code>dbfilename dump.rdb dir /var/lib/redis</code>
    Copier après la connexion
  3. Compression: les fichiers RDB peuvent être compressés pour enregistrer l'espace disque. Activer ou désactiver cela dans la configuration:

     <code>rdbcompression yes</code>
    Copier après la connexion
    Copier après la connexion

Aof (Ajouter uniquement le fichier):

  1. Activer AOF: AOF est désactivé par défaut. Pour l'activer, définissez appendonly sur yes dans redis.conf :

     <code>appendonly yes</code>
    Copier après la connexion
  2. Nom et emplacement de fichier: similaire à RDB, vous pouvez définir le nom et le chemin du fichier:

     <code>appendfilename "appendonly.aof" dir /var/lib/redis</code>
    Copier après la connexion
  3. AOF REWRITE: Pour contrôler lorsque Redis effectue une réécriture AOF, utilisez auto-aof-rewrite-percentage et auto-aof-rewrite-min-size :

     <code>auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb</code>
    Copier après la connexion
    Copier après la connexion

    Ces paramètres signifient qu'une réécriture AOF est déclenchée lorsque le fichier AOF actuel est 100% plus grand que la dernière réécriture et d'au moins 64 Mo de taille.

  4. Politique FSYNC: le paramètre appendfsync contrôle la fréquence à laquelle Redis écrit des données au disque:

     <code>appendfsync everysec</code>
    Copier après la connexion
    Copier après la connexion

    Les options incluent always , everysec et no . everysec est un choix courant, équilibrant les performances et la sécurité des données.

Quelles sont les implications de performance du choix de RDB contre AOF pour la persistance redis?

Le choix entre RDB et AOF pour la persistance redis affecte les performances de plusieurs manières:

RDB:

  • Impact des performances: les instantanés RDB sont généralement moins à forte intensité de ressources pendant le fonctionnement régulier car ils écrivent des données en vrac à des intervalles prédéfinis. Cela signifie que Redis n'a pas besoin d'effectuer des opérations d'E / S pour chaque commande d'écriture.
  • Temps de récupération: les instantanés RDB prennent moins de temps pour se remettre, car l'ensemble de données est chargé en mémoire à la fois.
  • Sécurité des données: RDB est moins sûr en termes de durabilité des données. Si Redis se bloque entre les instantanés, vous pouvez perdre des données du dernier point de sauvegarde.

AOF:

  • Impact des performances: AOF peut être plus à forte intensité de ressources car il enregistre chaque opération d'écriture, ce qui conduit à des E / S plus fréquentes. Cependant, le coup de performance peut être atténué avec la politique fsync :

    • always : Synchronous écrit sur disque pour chaque commande, offrant une durabilité élevée mais impactant de manière significative les performances.
    • everysec : écrit sur disque chaque seconde, offrant un bon équilibre entre les performances et la sécurité des données.
    • no : Never FSYNC, en s'appuyant sur le système d'exploitation pour écrire des données sur le disque, ce qui est le moins sûr mais a le moins d'impact sur les performances.
  • Temps de récupération: les fichiers AOF peuvent prendre plus de temps pour récupérer car Redis doit rejouer toutes les opérations d'écriture pour reconstruire l'ensemble de données.
  • Sécurité des données: AOF offre une meilleure sécurité des données car elle enregistre chaque opération, minimisant la perte de données en cas de crash.

Comment puis-je optimiser la fréquence et la taille des instantanés RDB dans Redis?

Pour optimiser la fréquence et la taille des instantanés RDB dans Redis, considérez les stratégies suivantes:

Optimisation de la fréquence:

  • Ajustez les intervalles de sauvegarde: modifiez les intervalles save dans redis.conf pour équilibrer entre la sécurité des données et les performances. Par exemple, si votre ensemble de données ne change pas fréquemment, vous pouvez réduire la fréquence:

     <code>save 3600 1 save 300 100 save 60 10000</code>
    Copier après la connexion
  • Monitor et ajustez: utilisez la commande INFO pour surveiller les métriques rdb_last_save_time et rdb_changes_since_last_save . Ajustez les intervalles de sauvegarde en fonction de votre charge de travail.

Optimisation de la taille:

  • Compression: permettez à la compression RDB de réduire la taille des instantanés:

     <code>rdbcompression yes</code>
    Copier après la connexion
    Copier après la connexion
  • Sélection du type de données: utilisez judicieusement les structures de données. Par exemple, l'utilisation SET au lieu de LIST pour stocker plusieurs éléments peut parfois entraîner des instantanés plus petits.
  • Expiration des données: implémentez TTL (temps de vivre) pour les clés qui peuvent être supprimées en toute sécurité pour réduire la taille de l'ensemble de données et, par conséquent, l'instantané RDB.

Conseils supplémentaires:

  • Instantané incrémentiel: Si possible, utilisez des instantanés incrémentiels pour réduire l'impact de la création d'instantanés sur les performances. Cette fonctionnalité est disponible dans Redis Enterprise.
  • Évitez les grands instantanés: si votre ensemble de données est très important, envisagez de le diviser sur plusieurs instances Redis pour gérer les tailles d'instantané.

Quelles étapes dois-je prendre pour assurer l'intégrité des données lors de l'utilisation de AOF dans Redis?

Pour assurer l'intégrité des données lors de l'utilisation de AOF dans Redis, suivez ces étapes:

1. Choisissez la bonne politique fsync :

  • Définissez appendfsync sur everysec dans redis.conf pour un équilibre entre les performances et la sécurité des données:

     <code>appendfsync everysec</code>
    Copier après la connexion
    Copier après la connexion
  • Si la perte de données est critique, considérez appendfsync always , mais soyez conscient de l'impact des performances.

2. Réécriture régulière AOF:

  • Activer les réécritures AOF automatiques pour maintenir la taille du fichier gérable et améliorer l'intégrité des données:

     <code>auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb</code>
    Copier après la connexion
    Copier après la connexion
  • Vous pouvez également déclencher manuellement les réécritures AOF à l'aide de la commande BGREWRITEAOF en cas de besoin.

3. Vérification de la corruption AOF:

  • Utilisez l'outil redis-check-aof pour vérifier l'intégrité du fichier AOF. Si la corruption est détectée, vous pouvez réparer le fichier:

     <code>redis-check-aof --fix appendonly.aof</code>
    Copier après la connexion
  • Implémentez un script pour vérifier et réparer régulièrement le fichier AOF, en particulier après les redémarrages du serveur.

4. Réplication pour la redondance:

  • Configurez la réplication Redis pour créer plusieurs copies de vos données. Cela garantit l'intégrité des données même si un serveur échoue:

     <code>slaveof <masterip> <masterport></masterport></masterip></code>
    Copier après la connexion
  • Utilisez Sentinel pour une haute disponibilité et un basculement automatique.

5. Surveillance et alertes:

  • Surveillez la taille et l'intégrité du fichier AOF à l'aide d'outils de surveillance Redis comme Redis Insight ou des outils tiers comme Prometheus et Grafana.
  • Configurer des alertes pour une croissance ou des erreurs inhabituels, ce qui pourrait indiquer des problèmes avec l'intégrité des données.

6. Stratégie de sauvegarde:

  • Mettez en œuvre une stratégie de sauvegarde régulière qui comprend à la fois les instantanés AOF et RDB. Cela fournit plusieurs couches de protection des données.
  • Stockez les sauvegardes à différents endroits pour sauvegarder contre les défaillances du centre de données.

En suivant ces étapes, vous pouvez améliorer considérablement l'intégrité des données de votre configuration Redis lorsque vous utilisez AOF pour la persistance.

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal