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ą.