sql >> Database >  >> NoSQL >> Redis

waarom neemt het geheugengebruik van redis niet af wanneer de helft van de toetsen wordt verwijderd?

Raadpleeg de sectie Geheugentoewijzing op de volgende link:

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

Ik citeerde het hier:

Redis zal niet altijd geheugen vrijmaken (retourneren) aan het besturingssysteem wanneer sleutels worden verwijderd. Dit is niet iets speciaals aan Redis, maar het is hoe mostmalloc()-implementaties werken. Als u bijvoorbeeld een instantie vult met 5 GB aan gegevens en vervolgens het equivalent van 2 GB aan gegevens verwijdert, zal de Resident Set Size (ook bekend als de RSS, het aantal geheugenpagina's dat door het proces wordt verbruikt) waarschijnlijk nog steeds ongeveer 5 GB zijn, zelfs als Redis beweert dat het gebruikersgeheugen ongeveer 3 GB is. Dit gebeurt omdat de onderliggende allocator het geheugen niet gemakkelijk kan vrijmaken. De meeste verwijderde sleutels werden bijvoorbeeld vaak toegewezen aan dezelfde pagina's als de andere sleutels die nog steeds bestaan.



  1. MongoDB-queryresultaten exporteren naar een CSV-bestand

  2. Hoe wissel ik tussen redis-database?

  3. Lombok - java.lang.StackOverflowError:null op toString methode

  4. Draft.js - Kan geen gegevens ophalen uit de database. Cross-origin-fout