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

dlaczego użycie pamięci Redis nie zmniejsza się, gdy dela się połowę kluczy?

Proszę zapoznać się z sekcją alokacji pamięci pod następującym linkiem:

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

Cytowałem to tutaj:

Redis nie zawsze zwalnia (zwraca) pamięć do systemu operacyjnego, gdy klucze są usuwane. Nie jest to coś specjalnego w Redis, ale tak działa większość implementacji malloc(). Na przykład, jeśli wypełnisz instancję danymi o wartości 5 GB, a następnie usuniesz odpowiednik 2 GB danych, rozmiar zestawu rezydentnego (znany również jako RSS, czyli liczba stron pamięci zużywanych przez proces) prawdopodobnie nadal będzie wynosić około 5 GB, nawet jeśli Redis twierdzi, że pamięć użytkownika wynosi około 3 GB. Dzieje się tak, ponieważ bazowy alokator nie może łatwo zwolnić pamięci motywu. Na przykład często większość usuniętych kluczy była przydzielana na tych samych stronach, co inne, które nadal istnieją.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Spring RedisConnectionFactory z transakcją nie zwraca połączenia do puli, a następnie blokuje po wyczerpaniu

  2. Pamięć podręczna Azure Redis — limity czasu dla wywołań GET

  3. Jak mogę ręcznie zainstalować bibliotekę Redis perl, tj. W trybie offline. I skąd mogę uzyskać wszystkie zależności do zainstalowania

  4. Jak przechowywać złożony zagnieżdżony JSON w Redis za pomocą Pythona?

  5. Programowe niszczenie / usuwanie Queue() w Redis Queue (rq)