Database Reference
In-Depth Information
> SET konto_b=500 -> OK
> MULTI -> OK
> DECRBY konto_a 300 -> QUEUED
> INCRBY konto_b 300 -> QUEUED
> EXEC ->
1) (integer) 700
2) (integer) 800
Nun kann es allerdings immer noch passieren, dass zwischen MULTI und DECRBY kon-
to_a 300 von Außen ein SET konto_a=0 ausgeführt wird. In diesem Fall wäre der Konto-
stand nach der Transaktion -300, und könnte durch das Backendprogramm nicht abgefan-
gen werden. Dafür gibt es den Befehl WATCH key. Ein key , der vor Beginn von MULTI
damit beobachtet wird, verhindert die Ausführung von EXEC , wenn während MULTI und
EXEC der Wert von key von außen verändert wird.
> SET konto_a=1000 -> OK
> SET konto_b=500 -> OK
> WATCH konto_a -> OK
> MULTI -> OK
An dieser Stelle wird von einem anderen Client (dem Finanzamt?) ein SET konto_a=0 aus-
geführt.
> DECRBY konto_a 300 -> QUEUED
> INCRBY konto_b 300 -> QUEUED
> EXEC -> (nil)
Das Ergebnis ist null, die Transaktion fand nicht statt. Um alle Keys wieder von der Beob-
achtung zu lösen, genügt ein UNWATCH. Dieser Befehl ist global, d.h. er betrifft alle Keys,
einzelne Keys können nicht mit UNWATCH angesprochen werden.
Persistenz
Redis speichert alle im RAM befindlichen Daten in einem einzigen File ( dump.rdb ). Das
Speichern geschieht asynchron im Hintergrund. Die Bedingungen, unter denen ein Daten-
dump vorgenommen wird, können anhand des SAVE -Befehls eingestellt werden. Dabei
lautet die Syntax: SAVE seconds changed_docs . Per Default (in der redis.conf ) sind folgen-
de Werte vorgegeben:
save 900 1
Search WWH ::




Custom Search