Dinge, die beim Speichern von Sitzungen in Redis zu beachten sind:
Wie werden Sitzungsdaten in Redis gespeichert? Wann löst eine Änderung des Sitzungsattributs die Speicherung aus? (Empfohlenes Lernen: Redis-Video-Tutorial)
Implementierung:
Unter Berücksichtigung der Tatsache, dass die Daten in der Sitzung eine kartenähnliche Struktur haben , Redis ist besser zum Speichern von Sitzungsdaten geeignet. Wenn ein einzelner Wert zum Speichern von Sitzungsdaten verwendet wird, besteht das Problem, dass die Sitzung nicht gesperrt wird. Daher werden durch die Verwendung von Hash zum Speichern der Sitzung nur die Daten gespeichert, die geändert werden Sitzungsattribut jedes Mal, wodurch die Sperrbehandlung vermieden und die Leistung verbessert wird.
Wenn die Speicherung jedes Mal ausgelöst wird, wenn ein Sitzungsattribut geändert wird, werden mehrere Redis-Schreibvorgänge ausgelöst, wenn weitere Sitzungsattribute geändert werden, was sich auch auf die Leistung auswirkt. Wir verarbeiten jede Anfrage schließlich , führen Sie eine Schreibsitzung durch und schreiben Sie die geänderten Attribute.
Wenn dieses Mal keine Sitzungsänderungen vorgenommen werden, wird das Redis-Schreiben nur dann ausgeführt, wenn die unveränderte Sitzung einen Zeitschwellenwert überschreitet (der Schwellenwert für die Ablaufzeit der Sitzungsaktualisierung wird nicht geändert). Die Sitzung wird gespeichert, sodass die Gültigkeitsdauer der Sitzung verlängert werden kann.
Zwei Implementierungsmethoden:
Zentralisierte Sitzungsspeicherung (Redis, Memcached, Hbase usw.).
Sitzungsdaten auf verschiedene Server kopieren Die Vor- und Nachteile der beiden Methoden sollten jedem klar sein.
Implementierungsplan basierend auf zentralisierter Sitzungsspeicherung:
Filter hinzufügen, Anforderungen abfangen und HttpServletRequest umschließen
Die getSession-Methode neu schreiben und aus der Sitzung abrufen Speichersitzungsdaten, geben Sie die angepasste HttpSession-Implementierung zurück
Nachdem Sie eine neue Sitzung generiert haben, schreiben Sie die Sitzungs-ID in das Cookie
Das obige ist der detaillierte Inhalt vonSo speichern Sie eine Sitzung in Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!