Kuonen SQL

Beispielkatalog

Jedes Beispiel ist zugleich ein Test: der Katalog läuft im Testlauf gegen einen echten Server und muss sein hinterlegtes Ergebnis liefern — was hier steht, ist genau das, was ausgeführt wird.

Zeichenketten

SET, GET und INCR

Zeichenketten sind der Grundtyp: SET/GET speichern und lesen, INCR zählt eine Zahl-Zeichenkette hoch.

SET pruefstand:demo:string:gruss "Hallo Welt"
GET pruefstand:demo:string:gruss
INCR pruefstand:demo:string:zaehler
INCR pruefstand:demo:string:zaehler
Erwartetes Ergebnis
Befehl | Antwort
SET pruefstand:demo:string:gruss "Hallo Welt" | OK
GET pruefstand:demo:string:gruss | Hallo Welt
INCR pruefstand:demo:string:zaehler | 1
INCR pruefstand:demo:string:zaehler | 2

Hashes

HSET, HGET und HGETALL

Ein Hash hält mehrere Feld/Wert-Paare unter einem Schlüssel.

HSET pruefstand:demo:hash:kunde name "Anna" ort "Bern"
HGET pruefstand:demo:hash:kunde name
HGETALL pruefstand:demo:hash:kunde
Erwartetes Ergebnis
Befehl | Antwort
HSET pruefstand:demo:hash:kunde name "Anna" ort "Bern" | 2
HGET pruefstand:demo:hash:kunde name | Anna
HGETALL pruefstand:demo:hash:kunde | [name, Anna, ort, Bern]

Listen

RPUSH, LRANGE und LPOP

Eine Liste hält Werte in Einfügereihenfolge; RPUSH hängt hinten an, LPOP nimmt vorne weg.

RPUSH pruefstand:demo:liste:aufgaben "Kochen" "Putzen" "Lesen"
LRANGE pruefstand:demo:liste:aufgaben 0 -1
LPOP pruefstand:demo:liste:aufgaben
Erwartetes Ergebnis
Befehl | Antwort
RPUSH pruefstand:demo:liste:aufgaben "Kochen" "Putzen" "Lesen" | 3
LRANGE pruefstand:demo:liste:aufgaben 0 -1 | [Kochen, Putzen, Lesen]
LPOP pruefstand:demo:liste:aufgaben | Kochen

Mengen

SADD, SCARD und SISMEMBER

Eine Menge hält jeden Wert höchstens einmal — ein zweites SADD desselben Werts zählt nicht mit.

SADD pruefstand:demo:menge:farben "rot" "gruen" "blau" "rot"
SCARD pruefstand:demo:menge:farben
SISMEMBER pruefstand:demo:menge:farben "gruen"
Erwartetes Ergebnis
Befehl | Antwort
SADD pruefstand:demo:menge:farben "rot" "gruen" "blau" "rot" | 3
SCARD pruefstand:demo:menge:farben | 3
SISMEMBER pruefstand:demo:menge:farben "gruen" | 1

Sortierte Mengen

ZADD, ZRANGE WITHSCORES und ZSCORE

Eine sortierte Menge hält jeden Wert mit einer Zahl (dem Rang); ZRANGE liest sie nach Rang aufsteigend.

ZADD pruefstand:demo:zmenge:rangliste 10 "Anna" 25 "Beat" 15 "Carla"
ZRANGE pruefstand:demo:zmenge:rangliste 0 -1 WITHSCORES
ZSCORE pruefstand:demo:zmenge:rangliste "Beat"
Erwartetes Ergebnis
Befehl | Antwort
ZADD pruefstand:demo:zmenge:rangliste 10 "Anna" 25 "Beat" 15 "Carla" | 3
ZRANGE pruefstand:demo:zmenge:rangliste 0 -1 WITHSCORES | [Anna, 10, Carla, 15, Beat, 25]
ZSCORE pruefstand:demo:zmenge:rangliste "Beat" | 25

Ablauf

EXPIRE, TTL und PERSIST

EXPIRE setzt eine Lebensdauer in Sekunden, TTL fragt sie ab, PERSIST nimmt sie wieder weg.

SET pruefstand:demo:ablauf:sitzung "aktiv"
EXPIRE pruefstand:demo:ablauf:sitzung 100
TTL pruefstand:demo:ablauf:sitzung
PERSIST pruefstand:demo:ablauf:sitzung
TTL pruefstand:demo:ablauf:sitzung
Erwartetes Ergebnis
Befehl | Antwort
SET pruefstand:demo:ablauf:sitzung "aktiv" | OK
EXPIRE pruefstand:demo:ablauf:sitzung 100 | 1
TTL pruefstand:demo:ablauf:sitzung | 100
PERSIST pruefstand:demo:ablauf:sitzung | 1
TTL pruefstand:demo:ablauf:sitzung | -1