2012-11-02 15 views

Odpowiedz

2

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.

+0

Jest to kolejna opcja, ale nie jestem pewien, jak dużo napowietrznych zużycia pamięci dla każdej instancji. – user209377

+0

Ale to jest opcja –

4

Zobacz redis-rdb-tools

można uzyskać przybliżone zużycie pamięci przez bazę danych, powinny być w granicach 10% rzeczywistości.

+0

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

+0

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 –

0

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

Powiązane problemy