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

Redis - meilleur moyen de stocker une grande carte (dictionnaire)

Oui, comme le dit Itamar Haber, vous devriez consulter ce guide d'optimisation de la mémoire Redis. Mais vous devez également garder à l'esprit quelques points supplémentaires :

  1. Préférez HSET à KEYS. Redis consomme beaucoup de mémoire uniquement pour la gestion de l'espace clé. En termes simples (et approximatifs), 1 HSET avec 1 000 000 de clés consomme jusqu'à 10 fois moins de mémoire que 1 000 000 de clés avec une valeur chacune.
  2. Garder la taille HSET inférieure à hash-max-zipmap-entries et hash-max-zipmap-value valide si la mémoire est la cible principale. Assurez-vous de comprendre ce que hash-max-zipmap-entries et hash-max-zipmap-value moyenne. Prenez également le temps de lire sur ziplist.
  3. En fait, vous ne voulez pas gérer les hash-max-zipmap-entries avec plus de 10 millions de clés ; à la place, vous devez diviser un HSET en plusieurs emplacements. Par exemple, vous définissez hash-max-zipmap-entries comme 10 000. Donc, pour stocker plus de 10 millions de clés, vous avez besoin de plus de 1000 clés HSET avec 10 000 chacune. En règle générale :crc32(key) % maxHsets.
  4. Renseignez-vous sur les chaînes dans redis et utilisez une longueur de nom KEY (dans HSET) basée sur la gestion de la mémoire réelle pour cette structure. En termes simples, en gardant une longueur de clé inférieure à 7 octets, vous dépensez 16 octets par clé, mais une clé de 8 octets dépense 48 octets chacune. Pourquoi? En savoir plus sur les chaînes dynamiques simples.

Il peut être utile de lire sur :

  • Optimisation de la mémoire Redis (de sripathikrishnan)
  • Commentaires sur la structure de la liste zip interne.
  • Stocker des centaines de millions de paires clé-valeur simples dans Redis (Instagram)