Cet article explique la persistance de Redis en utilisant des instantanés RDB et AOF. Il détaille la configuration, les compromis (vitesse vs sécurité), les stratégies d'optimisation (analyse de charge de travail, matériel, réglage) et recommandations de fréquence. Choisir entre ou combinin
Redis propose deux mécanismes de persistance primaires: les instantanés RDB (base de données Redis) et AOF (fichier d'ajout uniquement). Vous pouvez configurer les deux indépendants ou en utiliser un seul. Voici comment les configurer:
Configuration RDB: RDB crée des instantanés ponctuels de vos données Redis. Il est configuré à l'aide de la directive save
dans le fichier redis.conf
. Cette directive spécifie les conditions dans lesquelles un instantané doit être créé. Par exemple:
<code>save 900 1 # Save a snapshot after 900 seconds (15 minutes) if at least one key changed. save 300 10 # Save a snapshot after 300 seconds (5 minutes) if at least 10 keys changed. save 60 10000 # Save a snapshot after 60 seconds (1 minute) if at least 10000 keys changed.</code>
Vous pouvez supprimer ou ajouter des lignes pour ajuster la fréquence. Une seule directive save
peut conduire à des données incohérentes si Redis s'écrase au milieu de la saveur, de sorte que plusieurs directives save
sont recommandées pour améliorer la tolérance aux défauts. Les instantanés RDB sont créés de manière asynchrone, ce qui signifie qu'ils ne bloqueront pas les opérations Redis.
Configuration AOF: AOF Logs Chaque opération d'écriture dans un fichier. Cela fournit une récupération plus granulaire des données, mais peut être plus lente que RDB. Vous configurez AOF dans redis.conf
:
<code>appendonly yes # Enable AOF appendfilename "appendonly.aof" # Specify the AOF filename appendfsync everysec # Write the AOF file to disk every second. Other options are "always" (sync after every write) and "no" (OS handles syncing).</code>
appendfsync
est crucial pour la durabilité des données. everysec
offre un équilibre entre les performances et la sécurité des données. garantit always
la sécurité des données mais a un impact sur les performances. no
est le plus rapide mais risque la perte de données si le système se bloque.
Vous pouvez activer simultanément RDB et AOF. Dans ce cas, AOF fournira une récupération plus complète en cas de crash, tandis que RDB peut servir de sauvegarde rapide. N'oubliez pas d'ajuster les configurations en fonction de vos besoins et priorités spécifiques.
Le choix entre RDB et AOF dépend de vos priorités:
Fonctionnalité | Rdb | AOF |
---|---|---|
Vitesse | Plus vite, les instantanés sont créés de manière asynchrone | Plus lent, surtout avec appendfsync always
|
Sécurité des données | Moins sûr, perte de données potentielle lors d'un accident au milieu de napshot | Une perte de données plus sûre et minimale avec everysec ou always
|
Temps de récupération | Récupération plus rapide | Récupération plus lente, selon la taille du fichier |
Espace disque | Utilise moins d'espace disque | Utilise plus d'espace disque |
Complexité | Plus simple à configurer | Plus complexe pour configurer et gérer |
RDB convient aux applications où la tolérance à la perte de données est plus élevée et la vitesse est cruciale. L'AOF est mieux adaptée aux applications nécessitant une intégrité élevée de données et est disposée à sacrifier certaines performances. L'utilisation des deux fournit une solution robuste.
L'optimisation de Redis Persistance implique soigneusement en considérant votre charge de travail et vos besoins de performance. Voici quelques stratégies:
save
pour les paramètres RDB et appendfsync
pour AOF. Surveillez les mesures de performances (utilisation du processeur, temps d'attente d'E / S) pour trouver l'équilibre optimal entre la sécurité des données et la vitesse.Il n'y a pas de réponse unique à cette question. Cela dépend fortement de votre taux de modification des données, de votre tolérance à la perte de données et de vos exigences de performance.
RDB: Commencez avec des paramètres conservateurs comme les valeurs par défaut et surveillez votre tolérance de perte de données. Si votre application peut tolérer la perte de quelques minutes de données, les instantanés moins fréquents sont acceptables. Si vous avez besoin d'une sécurité plus élevée des données, augmentez la fréquence.
AOF: appendfsync everysec
fournit un bon équilibre entre les performances et la sécurité des données pour la plupart des applications. appendfsync always
une sécurité maximale des données mais réduit les performances. appendfsync no
est le plus rapide mais le plus risqué. Choisissez l'option qui s'aligne sur votre tolérance au risque.
Surveillez régulièrement les performances de votre instance Redis. Si vous observez la dégradation des performances en raison des opérations de persistance, ajustez la fréquence en conséquence. Pensez à utiliser des outils pour surveiller l'utilisation du processeur, les temps d'attente d'E / S et l'utilisation de la mémoire pour guider vos choix de configuration. N'oubliez pas de tester votre configuration soigneusement dans des conditions de charge réalistes.
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!