Redis: rapport entre la taille de la base de données et la mémoire?
Quel est le rapport entre la taille de la base de données et la mémoire de Redis?
par exemple, si j'ai une base de données de 80 Mo, combien de RAM utiliseront les Redis (lorsqu'ils sont utilisés avec une application web normale)?
2 réponses
Redis utilisera un peu plus de RAM que de disque. Le format dumpfile est probablement un peu plus dense. Voici quelques numéros d'un vrai système de production (une grande instance EC2 64 bits tournant Redis 2.0.4 sur Ubuntu 10.04):
$ redis-cli info | grep used_memory_human
used_memory_human:1.36G
$ du -sh /mnt/data/redis/dump.rdb
950M /mnt/data/redis/dump.rdb
comme vous pouvez le voir, le fichier dump est de quelques centaines de megs plus petit que l'utilisation de la mémoire.
à la fin cela dépend de ce que vous stockez dans la base de données. J'ai principalement des coups de fouet dans le mien, avec seulement quelques ensembles (peut-être moins de 1%). Aucun des les clés contiennent de très gros objets, la taille moyenne des objets est de 889 octets.
les bases de données Redis sont stockées en mémoire, donc une base de données de 80 Mo prendrait 80 Mo en mémoire vive.
Redis est une mémoire extrêmement basse en utilisant le programme, et vous pouvez voir que de cet exemple du site web "1 Million de clés avec la clé étant les nombres naturels de 0 à 999999 et la chaîne "Hello World" comme valeur utilise 100MB [de Ram]". Mon application Redis utilise environ 300kb à 500kb de ram, donc vous auriez besoin de beaucoup de données pour atteindre une base de données de 80mb. Redis enregistre aussi sur le disque des snapshots de la base de données, donc 80 Mo en ram et 80 Mo sur le disque dur.