Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Dlaczego plik Redis dump.rdb o pojemności 500 MB zajmuje około 5,0 GB pamięci?

Stosunek pamięci do rozmiaru zrzutu zależy od typów danych używanych wewnętrznie przez Redis.

W przypadku małych obiektów (skrótów, list i posortowanych zestawów) redis używa list zip do kodowania danych. W przypadku małych zestawów składających się z liczb całkowitych, redis używa Intsets. Listy ZipList i IntSets są przechowywane na dysku w tym samym formacie, w jakim są przechowywane w pamięci . Więc spodziewałbyś się stosunku 1:1, jeśli Twoje dane używają tych kodowań.

W przypadku większych obiektów reprezentacja w pamięci jest zupełnie inna niż reprezentacja na dysku. Format na dysku jest skompresowany, nie posiada wskaźników, nie musi radzić sobie z fragmentacją pamięci. Tak więc, jeśli twoje obiekty są duże, stosunek pamięci do dysku 10:1 jest normalny i oczekiwany.

Jeśli chcesz wiedzieć, które obiekty zajmują pamięć, użyj redis-rdb-tools do profilowania swoich danych (zastrzeżenie:jestem autorem tego narzędzia). Następnie postępuj zgodnie z uwagami dotyczącymi optymalizacji pamięci na redis.io, a także wpisem wiki optymalizacji pamięci na redis-rdb-tools.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis 10 razy większe zużycie pamięci niż danych

  2. Laravel wszystkie identyfikatory sesji ze sterownikiem Redis

  3. Jak przechowywać tablicę obiektów w Redis?

  4. Błąd integracji Redis z JHipster CacheConfiguration

  5. Wiedząc, kiedy resque pracownik zakończył pracę