Один экземпляр Redis с несколькими одновременными использованиями - PullRequest
1 голос
/ 28 мая 2019

Итак, я знаю, что redis - это хранилище данных в памяти, но я не очень хорошо разбираюсь в этом.

Мой вопрос: если у меня есть три отдельных использования для него, такиекак python-socketio для включения нескольких экземпляров сервера сокетов, Celery для отправки задач другому микросервису (который также будет использовать тот же экземпляр redis) и просто стандартный подписчик для прослушивания отправляемых уведомлений, могу ли я использовать один и тот же экземпляр redis для всех трех задач или я столкнусь с коллизиями между различными данными (т. е. из-за сельдерея неверно истолковал вызов python-socketio как задачу)?

1 Ответ

2 голосов
/ 28 мая 2019

Это зависит от того, как ваши данные передаются, вопрос не ясен о том, как данные передаются между каждым компонентом и их отношениями.

Если между этими сообщениями нет отношения или зависимости , вы можете избежать коллизий, сохраняя ваши сообщения в разных БД в одном экземпляре redis.

Или, если вам нужно использовать одну и ту же БД для всех из них, вы можете использовать namespaces aka prefixes для ваших ключей redis, чтобы избежать коллизий ключей. Вот дополнительная информация о как называть ключи в разделе ключей Redis.

Однако это не масштабируемо, чтобы один экземпляр обрабатывал это, но все же это зависит от того, сколько у вас трафика и чего именно вы пытаетесь достичь.

Пожалуйста, оставляйте комментарии, если что-то не понятно или я неправильно понял Ваш вопрос

...