Pourquoi la taille de mon fichier de sauvegarde Redis (.rdb) est-elle toujours inférieure à celle de la métrique BytesUsedForCache du cluster ElastiCache ?

Dernière mise à jour : 01/07/2022

J'utilise Amazon ElastiCache for Redis. Pourquoi la taille de mon fichier de sauvegarde Redis (.rdb) est-elle toujours inférieure à celle de la métrique BytesUsedForCache du cluster ?

Résolution

La métrique BytesUsedForCache inclut des octets pour tout usage. Cela inclut la taille réelle de la clé, les en-têtes et la fragmentation de la mémoire. Les clés expirées consomment également de la mémoire jusqu'à ce que Redis les retire de manière asynchrone, passivement ou activement. Pour plus d'informations, consultez la section Expire key seconds - How Redis expire keys sur le site Web Redis.io.

ElastiCache utilise à la fois des processus de sauvegarde avec et sans fonction fork. Les deux processus vident toutes les clés sur le disque pour créer le fichier .rdb. Le fichier .rdb n'utilise pas de pointeurs ou de clés expirées, et il ne traite pas la fragmentation de la mémoire, les métadonnées ou les mémoires tampons. Cela signifie que la taille des fichiers de sauvegarde est inférieure à celle de la métrique BytesUsedForCache.

Par exemple, votre cluster Redis peut afficher BytesUsedForCache tel que 15 Gio. Il peut également montrer que la sauvegarde a été lancée pendant une période de fortes demandes de lecture/écriture sur le cluster. Une fois le processus de sauvegarde terminé, la taille du cache de sauvegarde peut être comprise entre 10 Gio et 12 Gio, plutôt que 15 Gio. C'est parce que la sauvegarde ne contient pas de clés expirées, de pointeurs, et ainsi de suite.

Remarque :

  • La taille du cache dans lessauvegardes ElastiCache est dérivée de used_memory Redis au moment de la création de l'instantané. Il s'agit d'une estimation de la taille du cache non compressé. Si vousexportez un instantané de sauvegarde vers Amazon Simple Storage Service (Amazon S3), la taille du fichier sérialisé compressé est exportée.
  • Vous pouvez vérifier l'intégrité des données de la sauvegarde à l'aide d'info keyspace ou de la commande DBSIZE. Comparez le nombre de clés du cluster d'origine et du cluster restauré depuis la RDB. Assurez-vous qu'aucune action d'insertion, de suppression ou d'expulsion de clé n'a eu lieu entre la création et la restauration de l'instantané. Pour plus d'informations, consultezPourquoi mon réplica a un nombre de clés différent de celui de son instance principale ?dans la FAQ Redis.

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?