Redis 学习笔记4-事物

来源:互联网 发布:中学物理实验模拟软件 编辑:程序博客网 时间:2024/06/05 01:17


redis是单线程处理客户端请求的,对事物的支持比较简单。



开启事物:multi 

开启事物后就可以输入多个命令了,这些命令处在同一个事物中。

执行事物:exec

取消事物:discard

127.0.0.1:6379> multiOK127.0.0.1:6379> incr s1QUEUED127.0.0.1:6379> get s1QUEUED127.0.0.1:6379> exec1) (integer) 12) "1"



监视key:

监视key使用watch命令,当被监视的key的value改变后,若事物中用到该key,则事物执行失败。

exec  discard  unwatch可以取消监视

127.0.0.1:6379> watch s1OK127.0.0.1:6379> incr s1(integer) 2127.0.0.1:6379> multiOK127.0.0.1:6379> get s1QUEUED127.0.0.1:6379> exec(nil)127.0.0.1:6379> 



redis事物中存在缺陷:当事物中的多条命令,有一条执行失败的时候,并不会回滚其他命令的执行。

127.0.0.1:6379> multiOK127.0.0.1:6379> incr s1QUEUED127.0.0.1:6379> llen s1QUEUED127.0.0.1:6379> decr s1QUEUED127.0.0.1:6379> exec1) (integer) 32) (error) WRONGTYPE Operation against a key holding the wrong kind of value3) (integer) 2127.0.0.1:6379> 



0 0