KerndatenWeb und Mobile

Session-Verwaltung

Speichern Sie Sessions mit automatischem Ablauf und finden oder widerrufen Sie sie nach Benutzer, Rolle oder Gerät, ohne einen Index aufzubauen.

Lookup für alle Sessions eines Benutzers
1
Sekundärindizes
0
Ablauf, inklusive Tags
Auto
Schritt 1 von 5
Auf drei Geräten anmelden

Jedes Gerät bekommt seine eigene Session mit 30 Minuten Ablaufzeit.

Beispielsitzungplaying
# Auf drei Geräten anmelden
hotkv> SET session:9f2c "{\"user\":42}" EX 1800
OK

Ein animierter Durchlauf mit echten HotKV-Befehlen und Beispielantworten. Klicken Sie auf einen Schritt, um direkt dorthin zu springen. Befehle und Antworten bleiben auf Englisch, genau so, wie Sie sie in HotKV eingeben und sehen.

Das Problem

Sessions sind klein, heiß und kurzlebig, was gut zu einem In-Memory-Store passt. Schwierig wird es später, wenn der Support einen Benutzer überall abmelden muss oder die Sicherheit jede Session einer Rolle oder eines Geräts beenden will. Ein einfacher Key-Value-Store kann eine Session nur über ihre ID nachschlagen.

So löst HotKV es

HotKV speichert jede Session als Key mit Ablaufzeit und lässt Sie ihn mit dem Benutzer, der Rolle oder dem Gerät taggen, zu dem er gehört. Tags sind Teil der Engine und verschwinden mit dem Key, sodass Sie alle passenden Sessions mit einem Lookup auflisten oder widerrufen können, statt einen parallelen Satz von Keys zu pflegen.

Schritt für Schritt

Was passiert, Befehl für Befehl

  1. 01

    Auf drei Geräten anmelden

    Jedes Gerät bekommt seine eigene Session mit 30 Minuten Ablaufzeit.

    SET session:9f2c "{\"user\":42}" EX 1800
  2. 02

    Jede Session taggen

    Benutzer, Rolle und Gerät werden direkt nach dem Anlegen der Session angehängt.

    TAG.SET session:9f2c user:42 role:admin device:ios
  3. 03

    Angemeldet bleiben, solange aktiv

    Jede Anfrage erneuert die Ablaufzeit, was einen gleitenden Timeout ergibt.

    EXPIRE session:9f2c 1800
  4. 04

    Jede Session von Benutzer 42 finden

    Ein gestohlener Laptop wird gemeldet. Ein Lookup liefert alle Sessions des Benutzers.

    TAG.MEMBERS user:42
  5. 05

    Überall abmelden

    Löschen Sie die zurückgegebenen Keys. Ihre Tags verschwinden mit ihnen, und jedes Gerät ist abgemeldet.

    DEL session:9f2c session:71aa session:0c8e
Wo es passt

Szenarien aus der Praxis

Banking- und Fintech-Apps

Sicherheitsteams beenden alle Sessions eines kompromittierten Kontos oder aller Geräte mit einer veralteten App-Version in einem Schritt.

SaaS-Produkte

Wird einem Admin seine Rolle entzogen, wird jede mit dieser Rolle getaggte Session auf einmal widerrufen.

Streaming-Dienste

Zählen und begrenzen Sie gleichzeitige Sessions pro Konto anhand der TAG.MEMBERS-Antwort für den Benutzer-Tag.

Integriert

Was Sie bekommen

Automatischer Ablauf

Sessions verschwinden von selbst, wenn die TTL abläuft, und ihre Tags mit ihnen.

EXEXPIRE

Lookup ohne Index

Finden Sie Sessions über einen beliebigen Tag oder über mehrere Tags gleichzeitig.

TAG.MEMBERSTAG.INTER

Tags schnell prüfen

TAG.COUNT und TAG.EXISTS sagen Ihnen, was ein Key trägt.

TAG.COUNTTAG.EXISTS

Schnell bei Login-Ansturm

Lese- und Schreibzugriffe auf Sessions laufen auf parallelen Threads.

Häufige Fragen

Wie melde ich einen Benutzer nur auf einem Gerät ab?

Verwenden Sie TAG.INTER mit dem Benutzer-Tag und dem Geräte-Tag und löschen Sie dann die zurückgegebenen Keys.

Was passiert mit einem Tag, wenn seine Session abläuft?

Die Tags eines Keys verschwinden mit dem Key, auch beim Ablauf. Tags sind nicht Teil von Snapshots, setzen Sie sie also erneut, wenn der Server aus einem Snapshot neu startet.

Kann ich gleichzeitige Sessions pro Konto begrenzen?

Ja. TAG.MEMBERS auf dem Benutzer-Tag listet die Sessions auf, sodass Sie sie zählen und bei der Anmeldung ablehnen oder die älteste beenden können.

Verwandte Anwendungsfälle

Probieren Sie es mit Ihrer eigenen Workload

HotKV spricht das Redis-Protokoll, sodass Sie einen bestehenden Client darauf richten und genau diese Befehle ausführen können.