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

Redis datastruktur pladskrav

Det er meget mere end dit skøn. Lad os antage, at ziplister ikke bruges (dvs. du har et betydeligt antal varer).

En Redis-liste er en klassisk dobbeltlinket liste:3 pointers (prev,next,value) pr. element.

Et sorteret sæt er en ordbog plus en overspringsliste. I ordbogen vil emner også blive gemt med 3 pointers (nøgle, værdi, næste). Overspringslistens hukommelsesfodaftryk er mere kompleks at evaluere:hver node tager 1 dobbelt (score), 2 pointere (obj, bagud), plus n par (pointer, span værdi) med n mellem 1 og 32. De fleste elementer tager kun 1 eller 2 par.

Med andre ord, når det ikke er repræsenteret som en ziplist, er et sorteret sæt langt den Redis-datastruktur med den største overhead. Sammenlignet med en liste er hukommelsesomkostningerne mere end 200 % (dvs. 3 gange).

Bemærk:Den bedste måde at evaluere hukommelsesforbrug med Redis er at prøve at bygge en stor liste eller et sorteret sæt med pseudo-data og bruge INFO til at få hukommelsesfodaftrykket.




  1. Gør noget, hvis der ikke findes noget med .find() mongoose

  2. Rescue :Forbindelse nægtet - Kan ikke oprette forbindelse til Redis på localhost:6379

  3. Inkluder specifikke felter i et wildcard-indeks i MongoDB

  4. Hvordan vælger man et enkelt felt til alle dokumenter i en MongoDB-samling?