memorySpeicher (Memory Store)

Die MemoryStore ist eine In-Memory-Implementierung des Store Interfaces, die pro Sitzung Key-Value-Speicherung bereitstellt, gestützt durch eine thread-sichere ConcurrentHashMap. Sie ist leichtgewichtig, schnell und geeignet für Einzelknoten-Bereitstellungen, Entwicklungsumgebungen und Szenarien, in denen Sitzungsdaten nicht zwischen mehreren Serverinstanzen geteilt werden müssen.

Wesentliche Merkmale

  • Lokaler pro-Sitzung-Speicher — jede Verbindung erhält ihre eigene Store-Instanz

  • Thread-sicherer Zugriff — unterstützt gleichzeitige Lese-/Schreibzugriffe mithilfe von ConcurrentHashMap

  • Flüchtige Daten — Werte existieren nur im JVM-Speicher und gehen bei Neustart oder Ausfall verloren

  • Kein Knoten-übergreifendes Teilen — Daten werden nicht zwischen Servern verteilt

  • Keine externen Abhängigkeiten — so einfach wie möglich Store Implementierung

Wie es funktioniert

  • set(key, value) speichert einen Wert im Speicher, der auf die Sitzung begrenzt ist

  • get(key) ruft den gespeicherten Wert ab, oder null falls keiner vorhanden ist

  • has(key) prüft das Vorhandensein eines Schlüssels, ohne den Wert zu lesen

  • del(key) entfernt einen einzelnen Eintrag

  • destroy() löscht alle Einträge, wird typischerweise beim Trennen des Clients aufgerufen

Vorteile

👍 Schneller, latenzarmer Zugriff 👍 Keine externen Dienste erforderlich 👍 Ideal für Entwicklung und lokale Tests 👍 Funktioniert gut mit jedem EventStore für hybride Bereitstellungen (z. B., MemoryStore + KafkaEventStore oder MemoryStore + RedisStreamEventStore)

Einschränkungen

ℹ️ Nicht verteilt — Werte werden nicht zwischen Knoten synchronisiert ℹ️ Nicht persistent — Daten gehen bei Serverneustart oder Absturz verloren ℹ️ Nicht geeignet für horizontales Skalieren, sofern nicht mit einer verteilten StoreFactory Implementierung


Zusammenfassung

MemoryStore bietet lokalen, flüchtigen pro-Sitzung-Datenspeicher, ideal für Single-Node-Setups und Entwicklung. Kann mit jedem verteilten EventStore kombiniert werden, wenn die Verteilung von Ereignissen erforderlich ist, ohne verteilten Speicher.

Zuletzt aktualisiert

War das hilfreich?