Redis
 sql >> Base de données >  >> NoSQL >> Redis

Espace requis pour la structure de données Redis

C'est bien plus que votre estimation. Supposons que les ziplists ne soient pas utilisées (c'est-à-dire que vous avez un nombre important d'éléments).

Une liste Redis est une liste classique à double liaison :3 pointeurs (prev,next,value) par élément.

Un ensemble trié est un dictionnaire plus une liste de sauts. Dans le dictionnaire, les éléments seront également stockés avec 3 pointeurs (clé, valeur, suivant). L'empreinte mémoire de la liste de sauts est plus complexe à évaluer :chaque nœud prend 1 double (score), 2 pointeurs (obj, arrière), plus n couples (pointeur, valeur d'étendue) avec n compris entre 1 et 32. La plupart des éléments n'en prendront qu'un. ou 2 couples.

En d'autres termes, lorsqu'il n'est pas représenté sous forme de ziplist, un ensemble trié est de loin la structure de données Redis avec le plus de surcharge. Par rapport à une liste, la surcharge mémoire est supérieure à 200 % (soit 3 fois).

Remarque :la meilleure façon d'évaluer la consommation de mémoire avec Redis est d'essayer de créer une grande liste ou un ensemble trié avec des pseudo-données et d'utiliser INFO pour obtenir l'empreinte mémoire.