Hallo, wir sind dabei, AWS Opsworks zu implementieren. Es wird mehrere Instanzen von PHP-App-Servern und eine Instanz von MySQL geben. Wir planen, Redis und PHPredis für die Sitzungs- und Datenverwaltung zu verwenden. Ich bin noch sehr neu bei Redis und brauche daher Hilfe bei diesem Szenario.
Sollen wir Redis auf PHP-App-Servern installieren? Werden die Sitzungsdaten automatisch synchronisiert, sodass die Sitzung des Benutzers unberührt bleibt, wenn er zu einem anderen Server wechselt?
Oder sollten wir es zusammen mit MySQL auf einer separaten Instanz installieren, die eine Verbindung zu allen PHP-App-Servern herstellt. In diesem Fall befindet sich der Speicher nur auf einem Redis-Server und er wird allen PHP-Instanzen zur Verfügung gestellt.
Jedes andere geeignete Szenario ist ebenfalls willkommen. Ich bin in diesen Dingen sehr neu, also helfen Sie mir bitte bei der Auswahl der besten Architektur.
Antwort1
Sie müssten eine separate Instanz erstellen und alle PHP-Instanzen damit verbinden, oder Sie könnten sich AWS Elasticache ansehen, das sowohl Memcached als auch Redis unterstützt und Ihnen eine Skalierung nach Bedarf ermöglicht. Wenn Sie es auf jeder PHP-Instanz einzeln installieren, erhalten Sie nur einen „lokalen Cache“, aber es kommt zu Sitzungsproblemen, wenn der Load Balancer den Benutzer auf einen anderen Server setzt als den, auf dem er gestartet ist.