Привет, мы находимся в процессе внедрения AWS opsworks. Будет несколько экземпляров PHP App Servers и один экземпляр mysql. Мы планируем использовать redis и phpredis для управления сеансами и данными. Я совсем новичок в Redis, поэтому мне нужна помощь в этом сценарии.
Должны ли мы устанавливать redis на серверах приложений php? Будут ли они автоматически синхронизировать данные сеанса, чтобы если пользователь перейдет на другой сервер, его сеанс останется незатронутым?
Или мы должны установить его вместе с mysql на отдельном экземпляре, подключенном ко всем серверам приложений php. В этом случае хранилище будет только на одном сервере redis, и оно будет обслуживать все экземпляры php.
Любой другой подходящий сценарий также приветствуется. Я совсем новичок в этих вещах, поэтому, пожалуйста, помогите мне выбрать лучшую архитектуру.
решение1
Вам нужно будет сделать отдельный экземпляр и подключить все экземпляры PHP к нему, или вы также можете взглянуть на AWS Elasticache, который поддерживает как Memcached, так и Redis и позволит вам масштабироваться по мере необходимости. Установка на каждом экземпляре PHP по отдельности даст вам только «локальный кэш», но вызовет проблемы с сеансом, если балансировщик нагрузки переместит пользователя на другой сервер с того места, где он начал