Redis umożliwia przechowywanie danych w 16 różnych "bazach danych" (od 0 do 15). Czy istnieje sposób na wykorzystanie przestrzeni dyskowej na jedną bazę danych. W poleceniu INFO wyświetlana jest tylko liczba kluczy na bazę danych.Wykorzystanie pamięci w trybie redis dla każdej bazy danych
Odpowiedz
Nie, nie można indywidualnie kontrolować każdej bazy danych. Te "bazy danych" służą wyłącznie do logicznego podziału twoich danych.
Co możesz zrobić (w zależności od konkretnych wymagań i konfiguracji) jest spin wielu wystąpień redis, każdy wykonuje inne zadanie i każdy ma swój własny plik redis.conf
z limitem pamięci. Miejsce na dysku nie może być ograniczone, przynajmniej nie na poziomie Redis.
Nota boczna: Należy pamiętać, że 16 numer bazy danych nie jest na stałe zakodowany - można ustawić go w redis.conf
.
Zobacz redis-rdb-tools
można uzyskać przybliżone zużycie pamięci przez bazę danych, powinny być w granicach 10% rzeczywistości.
Spróbuję, ale myślę, że mówiąc "w 10% rzeczywistości", mówisz 10% więcej niż to, co raportuje twój program, czy to prawda? Uzyskiwanie serializowanej długości dla każdego klucza za pomocą obiektu debugowania, jak sugeruje to pytanie (http://stackoverflow.com/questions/7638542/redis-show-database-size-size-ke-keys), czy będzie lepszym niższym ograniczeniem ? Muszę sprawdzić. – user209377
Dla małych obiektów długość serializowana jest dokładna. Ale w przypadku większych obiektów jest to okropnie niepoprawne. Redis-rdb-tools inżynierowie wsteczni Struktury danych Redis, aby znaleźć pamięć używaną. Zobacz komentarze na https://github.com/sripathikrishnan/redis-rdb-tools/blob/master/rdbtools/memprofiler.py, aby dowiedzieć się więcej –
Zrobiłem to dzwoniąc pod numer dump
na wszystkich klawiszach w DB Redis i mierząc całkowitą liczbę użytych bajtów. Spowoduje to spowolnienie serwera i trochę potrwa. Wydaje się, że wielkość zwrotu wynosi około 4 razy mniej niż rzeczywiste użycie pamięci. Te liczby dadzą ci pojęcie, która baza danych używa najwięcej miejsca.
Oto mój kod: https://gist.github.com/mathieulongtin/fa2efceb7b546cbb6626ee899e2cfa0b
Jest to kolejna opcja, ale nie jestem pewien, jak dużo napowietrznych zużycia pamięci dla każdej instancji. – user209377
Ale to jest opcja –