Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Warum reduziert sich die Redis-Speichernutzung nicht, wenn die Hälfte der Schlüssel gelöscht wird?

Bitte lesen Sie den Abschnitt Speicherzuweisung unter folgendem Link:

http://redis.io/topics/memory-optimization

Ich habe es hier zitiert:

Redis gibt nicht immer Speicher an das Betriebssystem frei (gibt ihn zurück), wenn Schlüssel entfernt werden. Das ist nichts Besonderes an Redis, aber so funktionieren die meisten Malloc()-Implementierungen. Wenn Sie beispielsweise eine Instanz mit Daten im Wert von 5 GB füllen und dann das Äquivalent von 2 GB Daten entfernen, beträgt die Resident Set Size (auch bekannt als RSS, was die Anzahl der vom Prozess verbrauchten Speicherseiten ist) wahrscheinlich immer noch etwa 5 GB. auch wenn Redis behaupten wird, dass der Benutzerspeicher etwa 3 GB beträgt. Dies geschieht, weil der zugrunde liegende Zuordner den Speicher nicht einfach freigeben kann. Beispielsweise wurden die meisten der entfernten Schlüssel häufig auf denselben Seiten wie die anderen noch vorhandenen Schlüssel zugewiesen.