Pamięć jest ważnym zasobem dla wydajności Redis. Wykorzystana pamięć definiuje całkowitą liczbę bajtów przydzielonych przez Redis przy użyciu swojego przydziału (zarówno standardowego libc, jemalloc, jak i alternatywnego przydziału, takiego jak tcmalloc).
Możesz zebrać wszystkie dane dotyczące wykorzystania pamięci dla instancji Redis, uruchamiając "pamięć informacyjną".
127.0.0.1:6379> info memory
Memory
used_memory:1007280
used_memory_human:983.67K
used_memory_rss:2002944
used_memory_rss_human:1.91M
used_memory_peak:1008128
used_memory_peak_human:984.50K
Czasem, gdy Redis jest skonfigurowany bez limitu max pamięci, wykorzystanie pamięci w końcu dotrzeć do pamięci systemowej, a serwer zacznie rzucać „Out of Memory” błędów. W innych przypadkach Redis jest skonfigurowany z ograniczeniem maksymalnej ilości pamięci, ale nie ma żadnych ograniczeń. To spowodowałoby, że serwer nie usunąłby żadnych kluczy, zapobiegając w ten sposób zapisywaniu, dopóki pamięć nie zostanie zwolniona. Rozwiązaniem takich problemów byłoby skonfigurowanie Redis z maksymalną pamięcią i pewnymi zasadami eksmisji. W tym przypadku serwer zaczyna eksmitować klucze za pomocą reguły eksmisji, ponieważ wykorzystanie pamięci osiąga maksimum.
Pamięć RSS (Resident Set Size) to liczba bajtów przydzielonych systemowi operacyjnemu Redis. Jeśli stosunek "memory_rss" do "memory_used" jest większy niż ~ 1,5, oznacza to fragmentację pamięci. Pofragmentowaną pamięć można odzyskać przez ponowne uruchomienie serwera.
Przeczytaj dokładniejszy opis, aby monitorować serwer redis here
Dzięki. Zobaczę różne rozwiązania, szczególnie używając artykułu o użyciu redis jako pamięci podręcznej LRU (nie widziałem tego wcześniej) – kozher