redis事务
redis支持部分事务,当提交的事务中有语法错误时,事务会nil,但是如果事务的语句是要执行才能判断错误时,事务就会执行没有错误的语句。
- MULTI
用于标记事务块的开始。
返回值:OK。 - EXEC
执行事务,如果使用watch发生事务中断时,EXEC为null。 - DISCARD
清除之前所有的命令(包括watch的key)
返回值:ok - WATCH
WATCH key [key …],当key的value发生变化时,事务会失败
对于每个键来说,时间复杂度总是O(1)。
Watch指令,类似乐观锁,事务提交时,如果Key的值已被别的客户端改变,
比如某个list已被别的客户端push/pop过了,整个事务队列都不会被执行 - UNWATCH
清除所有先前为一个事务监控的键。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 127.0.0.1:6379> MULTI OK 127.0.0.1:6379> set url http://qifuguang.me QUEUED 127.0.0.1:6379> set title winwill2012 QUEUED 127.0.0.1:6379> set desc java QUEUED 127.0.0.1:6379> EXEC 1) OK 2) OK 3) OK 127.0.0.1:6379> 127.0.0.1:6379> get url "http://qifuguang.me" 127.0.0.1:6379> get title "winwill2012" 127.0.0.1:6379> get desc "java" 127.0.0.1:6379> |