Redis简单事务(期待后续版本更新)
redis的事务非常简单,使用方法:
首先是使用multi开启事务,这是设置的数据都会放在队里进行保存,最后使用exec执行,把数据依次存储到redis中,使用discard方法取消事务。
127.0.0.1:6379> multi OK 127.0.0.1:6379> set a 1 QUEUED 127.0.0.1:6379> set b 2 QUEUED 127.0.0.1:6379> set name jack QUEUED 127.0.0.1:6379> exec 1) OK 2) OK 3) OK 127.0.0.1:6379> keys * 1) "b" 2) "a" 3) "name"
存在问题:redis事务不能保证同时成功或失败进行提交或失败,所以redis事务目前还是比较简单,期待在后续版本中的优化。
127.0.0.1:6379> get a "1" 127.0.0.1:6379> get name "jack" 127.0.0.1:6379> multi OK 127.0.0.1:6379> incr a QUEUED 127.0.0.1:6379> incr name //将字符串类型incr QUEUED 127.0.0.1:6379> exec 1) (integer) 2 2) (error) ERR value is not an integer or out of range 字符串类型incr,报错,此时按照事务的特性,应该都回滚! 127.0.0.1:6379> get a "2" //incr a 并没有回滚! 127.0.0.1:6379>