事务
127.0.0.1:6379> muti
(error) ERR unknown command 'muti'
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set k1 value1
QUEUED
127.0.0.1:6379> set k2 value2
QUEUED
127.0.0.1:6379> exec
1) OK
2) OK
127.0.0.1:6379> keys *
1) "name"
2) "k2"
3) "k1"
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set k3 v3
QUEUED
127.0.0.1:6379> discard
OK
127.0.0.1:6379> keys *
1) "name"
2) "k2"
3) "k1"
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set k3 v3
QUEUED
127.0.0.1:6379> set k4
(error) ERR wrong number of arguments for 'set' command
127.0.0.1:6379> exec
(error) EXECABORT Transaction discarded because of previous errors.
127.0.0.1:6379> keys *
1) "name"
2) "k2"
3) "k1"
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set k3 v3
QUEUED
127.0.0.1:6379> incr k3
QUEUED
127.0.0.1:6379> set k4 v4
QUEUED
127.0.0.1:6379> exec
1) OK
2) (error) ERR value is not an integer or out of range
3) OK
127.0.0.1:6379> keys *
1) "k3"
2) "k4"
3) "k2"
4) "name"
5) "k1"
127.0.0.1:6379>
乐观锁
客户端1:
127.0.0.1:6379> set balance 100
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k4"
3) "k2"
4) "balance"
5) "name"
6) "k1"
127.0.0.1:6379> watch balance
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> incrby balance 10
QUEUED
127.0.0.1:6379> exec
(nil)
127.0.0.1:6379>
客户端2:
127.0.0.1:6379> keys *
1) "k3"
2) "k4"
3) "k2"
4) "balance"
5) "name"
6) "k1"
127.0.0.1:6379> watch balance
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> incrby balance 20
QUEUED
127.0.0.1:6379> exec
1) (integer) 120
127.0.0.1:6379>