sql >> Databáze >  >> NoSQL >> Redis

Proč soubor Redis dump.rdb o velikosti 500 MB zabírá asi 5,0 GB paměti?

Poměr velikosti paměti k velikosti výpisu závisí na typech dat, které Redis interně používá.

Pro malé objekty (haše, seznamy a tříděné sady) používá redis ke kódování dat ziplisty. Pro malé sady vytvořené z celých čísel používá redis Intsets. ZipLists a IntSets jsou uloženy na disku ve stejném formátu, v jakém jsou uloženy v paměti . Pokud tedy vaše data používají tato kódování, očekávali byste poměr 1:1.

U větších objektů je reprezentace v paměti zcela odlišná od reprezentace na disku. Formát na disku je komprimovaný, nemá ukazatele, nemusí řešit fragmentaci paměti. Pokud jsou tedy vaše objekty velké, je poměr paměti k disku 10:1 normální a očekávaný.

Pokud chcete vědět, které objekty zabírají paměť, použijte k profilování dat nástroje redis-rdb-tools (odmítnutí odpovědnosti:Jsem autorem tohoto nástroje). Odtud postupujte podle poznámek k optimalizaci paměti na redis.io a také podle položky wiki optimalizace paměti na redis-rdb-tools.



  1. MongoDB $setOnInsert

  2. Nelze vytvořit funkční projekt meteor.js na tulákovské krabici

  3. Jak uložit komplexní vnořený JSON v Redis pomocí Pythonu

  4. ClusterControl – Pokročilá správa zálohování – MongoDB