sql >> Database teknologi >  >> NoSQL >> Redis

Redis - bedste måde at gemme et stort kort på (ordbog)

Ja, som Itamar Haber siger, bør du se på denne redis-hukommelsesoptimeringsguide. Men du bør også huske på nogle flere ting:

  1. Foretrækker HSET frem for NØGLER. Redis bruger meget hukommelse kun på nøglepladsstyring. Enkelt (og groft) bruger 1 HSET med 1.000.000 nøgler op til 10 gange mindre hukommelse end 1.000.000 nøgler med én værdi hver.
  2. Hold HSET-størrelse mindre end hash-max-zipmap-entries og gyldig hash-max-zipmap-value hvis hukommelsen er hovedmålet. Sørg for at forstå, hvilke hash-max-zipmap-entries og hash-max-zipmap-value betyde. Brug også lidt tid på at læse om ziplist.
  3. Du ønsker faktisk ikke at håndtere hash-max-zipmap-entries med 10M+ nøgler; i stedet bør du opdele et HSET i flere slots. For eksempel indstiller du hash-max-zipmap-entries som 10.000. Så for at opbevare 10M+ nøgler skal du bruge 1000+ HSET nøgler med 10.000 hver. Som en grov tommelfingerregel:crc32(key) % maxHsets.
  4. Læs om strenge i redis og brug et NØGLEnavn (i HSET) længde baseret på reel hukommelsesstyring for denne struktur. Enkelt sagt, hvis du holder nøglelængden under 7 bytes, bruger du 16 bytes pr. nøgle, men en 8-byte nøgle bruger 48 bytes hver. Hvorfor? Læs om simple dynamiske strenge.

Det kan være nyttigt at læse om:

  • Redis Memory Optimization (fra sripathikrishnan)
  • Kommentarer om intern ziplistestruktur.
  • Lagring af hundreder af millioner af simple nøgleværdi-par i Redis (Instagram)



  1. Spring data tilsidesætter standard serializer igen

  2. Sådan konverteres Redis-dato til R

  3. Ret "indeksnavn skal være en streng", når du dropper flere indekser i MongoDB

  4. Hvordan starter man en mongodb shell i docker container?