sql >> Database >  >> NoSQL >> Redis

Ruimtevereisten voor Redis-gegevensstructuur

Het is veel meer dan je schatting. Laten we aannemen dat ziplists niet worden gebruikt (d.w.z. u heeft een aanzienlijk aantal items).

Een Redis-lijst is een klassieke dubbel gelinkte lijst:3 pointers (prev,next,value) per item.

Een gesorteerde set is een woordenboek plus een skip list. In het woordenboek worden items ook opgeslagen met 3 pointers (key,value,next). De geheugenvoetafdruk van de skip-lijst is ingewikkelder om te evalueren:elk knooppunt heeft 1 dubbel (score), 2 pointers (obj, achteruit), plus n paren (pointer, spanwaarde) met n tussen 1 en 32. De meeste items hebben slechts 1 of 2 koppels.

Met andere woorden, wanneer het niet wordt weergegeven als een ziplist, is een gesorteerde set verreweg de Redis-gegevensstructuur met de meeste overhead. Vergeleken met een lijst is de geheugenoverhead meer dan 200% (d.w.z. 3 keer).

Opmerking:de beste manier om het geheugenverbruik met Redis te evalueren, is door te proberen een grote lijst of gesorteerde set met pseudo-gegevens op te bouwen en INFO te gebruiken om de geheugenvoetafdruk te krijgen.




  1. MongoDB - afsluiten met code:62

  2. MongoDB Ruby Driver 2.5.x Hoofdlettergevoeligheidsproblemen met hostnamen op replicasets

  3. Mongo-cxx-driver bouwen met CMake ExternalProject_Add

  4. MongoDB / Meteor / Export MONGO_URL naar geïmplementeerde applicaties