Назад | Перейти на главную страницу

Является ли установка нескольких экземпляров Redis на сервере хорошей идеей?

Как сказано в названии. Я рассматриваю возможность создания фермы государственных служб с использованием redis, и я хотел бы обрабатывать несколько «регионов» - таким образом, если служба выходит из строя, это должно затронуть только один регион. Поначалу это может показаться хорошей идеей, но я бы предпочел заранее знать, если:

  1. Установка нескольких параллельных экземпляров Redis - хорошая идея?
  2. Redis хранит данные только в ОЗУ?
  3. Сколько оперативной памяти использует типичный экземпляр Redis? (Я понимаю, что это может быть реторический вопрос, но я хотел бы получить некоторые предположения)

В Stack Exchange мы запускаем несколько экземпляров Redis на одном сервере и никогда не сталкивались с какими-либо проблемами:

[kbrandt@ny-redis01: ~] ps -e -o vsz,cmd | grep redis-server | sort -nr
15943668 /usr/sbin/redis-server *:6382
14966708 /usr/sbin/redis-server *:6379
7878376 /usr/sbin/redis-server *:6380
2692092 /usr/sbin/redis-server *:6384
1855480 /usr/sbin/redis-server *:6383
1002304 /usr/sbin/redis-server *:6381
377072 /usr/sbin/redis-server *:6385
374780 /usr/sbin/redis-server *:6387
 50992 /usr/sbin/redis-server *:6388
 50992 /usr/sbin/redis-server *:6378

Использование памяти действительно будет зависеть от того, сколько данных вы помещаете в каждый экземпляр. Также могут быть некоторые накладные расходы на фрагментацию (вы можете увидеть коэффициент фрагментации с помощью redis info команда). Чтобы оценить свои возможности, вы смотрите на "Каков объем памяти Redis?" из часто задаваемых вопросов. Также не забудьте установить /proc/sys/vm/overcommit_memory на 1, как указано в том же FAQ.

  1. Как сказал @faker, это зависит от варианта использования. Если вы хотите только кэшировать данные локально (на сервере приложений), это может сработать. Однако, если вы хотите иметь функциональные возможности общего кеша / хранилища данных, я бы выбрал развязанное решение. Кроме того, связь обычно не одобряется, поскольку она может препятствовать масштабируемости.

  2. Да - данные в Redis хранятся и обслуживаются полностью из ОЗУ. Однако у вас есть возможность сохранить данные в надежном хранилище.

  3. Процесс Redis очень легкий, т.е. <2 МБ при загрузке. Любая ОЗУ, используемая выше, которая предназначена для хранения данных и зависит от нескольких факторов, включая: объем данных, содержимое данных, «схему» вашего пространства ключей и структуры данных, которые вы используете.