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

Date de la dernière mise à jour : 16/02/2021

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 ByteSedForCache 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 ByteSedForCache tel que 15 Gio. Il peut également montrer que la sauvegarde a été lancée alors qu'il y avait de lourdes 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.


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


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