redis-事务 transaction

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis-事务 transaction相关的知识,希望对你有一定的参考价值。

redis的目标的是: 简洁,高效,由于事务本身就是一个很复杂的东西,所有我们不能把事务做的太复杂。。。
  1. multiexec
  2. 127.0.0.1:6379> multi
  3. OK
  4. 127.0.0.1:6379> lpush fruits orange
  5. QUEUED
  6. 127.0.0.1:6379> lpush fruits nut
  7. QUEUED
  8. 127.0.0.1:6379> lpush fruits apple
  9. QUEUED
  10. 127.0.0.1:6379> exec
  11. 1) (integer) 1
  12. 2) (integer) 2
  13. 3) (integer) 3

事务不支持回滚,目的是让redis足够简单,所以写代码的时候要非常注意

使用watch保护不想被multi改变的变量
  1. 127.0.0.1:6379> watch msg
  2. OK
  3. 127.0.0.1:6379> multi
  4. OK
  5. 127.0.0.1:6379> set msg "2008 hello wolrd"
  6. QUEUED
  7. 127.0.0.1:6379> exec
  8. (nil)
  9. 127.0.0.1:6379> get msg
  10. "12345" // 没有被改变
  11. 127.0.0.1:6379>





以上是关于redis-事务 transaction的主要内容,如果未能解决你的问题,请参考以下文章

redis源码分析之事务Transaction(下)

redis学习之——Redis事务(transactions)

redis事务(Transactions)

redis源码分析之事务Transaction(上)

Redis学习记录之Transaction简析(十九)

Redis事务入门及命令