connect-redis - So schützen Sie das Sitzungsobjekt vor Racebedingung

Ich verwende nodejs mit connect-redis, um die Sitzungsdaten zu speichern.

Ich speichere Benutzerdaten in der Sitzung und verwende sie für die Sitzungsdauer.

Ich habe festgestellt, dass zwischen zwei Anforderungen möglicherweise eine Race-Bedingung besteht, die die Sitzungsdaten ändert.

Ich habe versucht, die Sitzung mit Redis-Lock zu sperren, aber das ist für mich etwas problematisch.

Ich möchte nicht die gesamte Sitzung sperren, sondern nur bestimmte Sitzungsvariablen sperren.

Ich fand es unmöglich und überlegte, wie ich es lösen sollte:

Beenden Sie die Verwendung des Sitzungsobjekts zum Speichern von Benutzerdaten, und speichern Sie die Variable direkt in der Redis und sperren Sie sie, bevor Sie sie verwenden.

Ich weiß, dass es funktionieren kann, aber ich muss alle Objekte manuell verwalten, anstatt nur über das Sitzungsobjekt auf redis zuzugreifen.

Können Sie mir bitte die beste Praxis und Ihre Vorschläge mitteilen?

Danke, Lior

Antworten auf die Frage(1)

Ihre Antwort auf die Frage