Redis: отношение размера базы данных к памяти? - PullRequest
26 голосов
/ 19 января 2011

Каково отношение размера базы данных Redis к памяти?

Например, если у меня есть база данных объемом 80 МБ, сколько ОЗУ будет использовать Redis (при использовании с обычным веб-приложением)?

Ответы [ 2 ]

24 голосов
/ 19 января 2011

Redis будет использовать немного больше оперативной памяти, чем диск. Формат файла дампа, вероятно, немного более плотно упакован. Вот некоторые цифры из реальной производственной системы (большой 64-битный экземпляр EC2 с Redis 2.0.4 в Ubuntu 10.04):

$ redis-cli info | grep used_memory_human
used_memory_human:1.36G

$ du -sh /mnt/data/redis/dump.rdb 
950M /mnt/data/redis/dump.rdb

Как видите, файл дампа на несколько сотен мегабайт меньше, чем объем используемой памяти.

В конце концов, это зависит от того, что вы храните в базе данных. У меня в основном хэши, только с несколькими (возможно, менее 1%) сетами. Ни один из ключей не содержит очень большие объекты, средний размер объекта составляет 889 байт.

0 голосов
/ 19 января 2011

Базы данных Redis хранятся в памяти, поэтому база данных объемом 80 МБ может занимать 80 МБ в оперативной памяти.

Redis - это программа, использующая чрезвычайно мало памяти, и вы можете видеть это из этого примера с веб-сайта «1 миллион ключей, ключ - натуральные числа от 0 до 999999 и строка« Hello World »в качестве значенияиспользует 100 МБ [памяти] ".Мое приложение Redis использует от 300 до 500 Кбайт оперативной памяти, поэтому вам потребуется много данных, чтобы достичь базы данных размером 80 Мб.Redis также сохраняет на диск снимки базы данных, поэтому 80 МБ в оперативной памяти и 80 МБ на жестком диске.

...