Ich möchte Daten für eine Benutzersitzung in einer Webanwendung cachen, die auf struts.What der beste Weg erstellt wird. Derzeit speichern wir bestimmte Informationen aus der Datenbank in Java-Objekten in der Benutzersitzung .Works gut bis jetzt, aber die Leute sind jetzt besorgt über Speicherverbrauch usw. Jeder Gedanke, wie man dieses Problem am besten umgehen kann.Webanwendungssitzungscache
Antwort
Aus diesem Grund ist es in der Regel schlecht, ganze Objekte in der Benutzersitzung zu speichern. Sie sollten wahrscheinlich nur die Schlüssel in der Sitzung speichern und die Datenbank erneut abfragen, wenn Sie sie erneut benötigen. Dies ist ein Kompromiss, der jedoch für die meisten Anwendungsfälle akzeptabel ist. Das Abfragen der Datenbank nach Schlüsseln ist normalerweise akzeptabel, um zwischen Anforderungen zu erfolgen, anstatt Objekte in der Sitzung zu speichern.
Wenn Sie sie in der Sitzung haben müssen, sollten Sie eine Art LRUMap verwenden (in Apache Collections).
funktioniert gut bis jetzt, aber die Leute sind jetzt besorgt über die Speichernutzung usw.
„besorgt“ zu sein, ist relativ sinnlos - haben sie keine konkreten Grund dafür? Statistiken, die zeigen, wie viele Speicher-Session-Objekte belegen? Entlang der gleichen Linie: Haben Sie konkrete Gründe, die Daten in der Benutzersitzung zwischenzuspeichern? Haben Sie die App profiliert und festgestellt, dass das Abrufen dieser Daten aus der Datenbank für jede Anfrage die App erheblich verlangsamt?
Nicht raten. Messen.