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

Hvorfor tager en Redis dump.rdb-fil på 500 MB omkring 5,0 GB hukommelse?

Forholdet mellem hukommelse og dumpstørrelse afhænger af de datatyper Redis bruger internt.

Til små objekter (hash, lister og sorterede sæt) bruger redis ziplister til at kode data. For små sæt lavet af heltal bruger redis Intsets. ZipLists og IntSets gemmes på disk i samme format, som de er gemt i hukommelsen . Så du ville forvente et 1:1-forhold, hvis dine data bruger disse kodninger.

For større objekter er repræsentationen i hukommelsen helt anderledes end repræsentationen på disken. Formatet på disken er komprimeret, har ikke pointere, behøver ikke at håndtere hukommelsesfragmentering. Så hvis dine objekter er store, er et 10:1 hukommelse til disk-forhold normalt og forventet.

Hvis du vil vide, hvilke objekter der spiser hukommelse, skal du bruge redis-rdb-tools til at profilere dine data (disclaimer:Jeg er forfatteren til dette værktøj). Derfra skal du følge noterne til hukommelsesoptimering på redis.io samt wiki-indlægget for hukommelsesoptimering på redis-rdb-tools.



  1. Implementering og vedligeholdelse af MongoDB ved hjælp af Ansible

  2. spring server kan ikke oprette forbindelse til redis ved hjælp af jedis klient

  3. Importer CSV-data som et array i MongoDB ved hjælp af mongoimport

  4. Upserting i Mongo DB ved hjælp af officiel C#-driver