redis: более 40 серверов, читающих одно и то же содержимое redis

Я собираю спортивные данные каждую минуту с помощью PHP-скриптов и сохраняю их в Redis. Все это делается на одном сервере Ubuntu 16.04. Давайте назовем это коллекторным сервером.

Моя цель — сделать базу данных, созданную Redis, доступной для наших клиентов. БД будет доступна только для чтения нашим клиентам.

Мы подключаем серверы клиентов к нашему контенту Redis напрямую
указывая их на хост Redis: порт этого сервера коллектора. Если все наши клиенты захотят получить доступ к БД, я боюсь, что коллекторный сервер застрянет (более 40 клиентов) …

Этот контент Redis обновляется каждую минуту, и мы являемся владельцами серверов и контента клиентов.

Есть ли настройка в Redis или способы создания 40+ внешних серверов, читающих одну и ту же БД контента Redis, не убивая сервер-сборщик?

0

Решение

Перед масштабированием я рекомендую сравнить приложение с Redis с реальной и / или смоделированной нагрузкой — один сервер Redis может выдержать впечатляющую нагрузку (см. https://redis.io/topics/benchmarks) так что вы можете закончить разработку этого.

Тем не менее, в масштабе только для чтения, прочитайте о Redis ‘ копирование. Если вы хотите масштабировать записи, читайте о Redis кластер.

1

Другие решения

+1 За ответ Итамара. Но следует помнить еще одну важную вещь: разрешать своим клиентам напрямую подключаться к вашему ресурсу Redis опасно и их следует избегать.

  1. У них будет ваш хост: порт и пароль, и они смогут подключаться, писать, изменять, удалять и даже выключать или менять ваш пароль.
  2. Он не масштабируется, и вы, вероятно, заметите это, когда уже слишком поздно и слишком сложно изменить.
  3. У некоторых клиентов могут возникнуть проблемы с подключением и передачей некоторых маршрутизаторов и FW через нестандартный порт TCP.

У вас должны быть серверы приложений, которые обеспечивают связь Redis для ваших клиентов.

1