redis的事务

一、redis的事务是什么

可以一次执行多个命令,本质上是一组命令的集合。事务中的所有命令都会序列号,按顺序一个一个的执行,不会被其他命令中途插入,不许加塞。

可以进行批处理操作

 

 

二、redis的事务能做什么

在一个队列中,一次性、顺序性、排他性的执行一系列命令。

共经过三个阶段:

1.开启事务 multi

2.入队 将命令存入queue中

3.执行 exec

三、redis的事务怎么使用

 

redis事务相关的命令

multi:开启事务,接下来输入的命令(比如set k1 v1)都会被置入到事务块(命令队列)中

exec:执行事务命令队列中的所有命令

discard:取消事务,放弃执行事务块内的所有命令

watch key名:监控某个key,如果事务在提交事,监控的那个key与获取时的值不相等那么就取消本次事务。

 

 

 

对于redis的事物,有5种情况:

1.正常执行:事务中所有命令都正确,没有发生异常。

2.放弃事务:在命令中包含discard,放弃执行所有命令

3.命令语法错误:在事务块中的命令出现了语法相关的错误(比如gettt k1,redis中没有这样的命令),那么这次的事务就会全部取消执行。

4.非命令语法错误:比如,k1的值为a,在事务中执行了incur k1,由于k1是非数字,所以这条命令会出错,这种情况下事务仍会执行,只有这条命令会抛出异常

5.whatch key:whatch有点类似乐观锁,监视一个key或多个,如果在事务开始执行之前,这个、这些key被其他命令更改了,那么这次的事务就会被打断。

unwatch:取消监控,在执行exec后,之前加的监控锁都会被取消掉

四:redis的事务的特性

1.单独的隔离操作:事务中所有的命令都会序列号、按顺序的执行,不会被其他客户端的命令打断

2.没有像SQL数据库的隔离级别的概念,因为事务在执行之前,所有存入队列的命令都不会执行.

3.不保证原子性:redis中如果没有语法错误的语句执行错误,其他的命令并不会回滚

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值