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

В настоящее время мы используем Redis для хранения сеанса одного приложения, в настоящее время работающего в Azure. Мы используем его, чтобы при масштабировании приложения Azure сеанс не сохранялся локально в самом приложении. Мы также находимся в процессе размещения другого приложения в Azure, и я хотел бы знать, можем ли мы использовать тот же экземпляр Redis или наличие двух приложений, хранящих сеансы в одном месте, может вызвать проблемы.

Всего 2 ответа


Это зависит от вашего ключа. Если вы используете ключ, который является только именем пользователя. Затем оба приложения читают одно и то же состояние сеанса. Вы можете сделать это, создав составной ключ с именем приложения как части ключа.

Я хотел бы использовать отдельные случаи:

  • обеспечение уникальных имен ключей в приложениях повышает сложность и риск
  • высокая нагрузка на одно приложение может повлиять на другие приложения
  • если экземпляр Redis не работает, все ваши приложения не работают

Я бы не использовал разные ключи и один и тот же сервер и базу данных Redis. Ваши два веб-приложения становятся близнецами. Если одно веб-приложение работает, оно может активировать другое.

Если вы развертываете один и тот же код веб-приложения в двух или более веб-приложениях, вы можете использовать один и тот же сервер Redis, но разные базы данных на сервере. Azure Redis Cache имеет один сервер, каждый с 16 базами данных. Однако базы данных в пределах одного и того же сервера имеют общие ограничения по обслуживанию.

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


Есть идеи?

10000