redis事务

1.redis事务特征

事务是所有数据库系统必备的一个功能。redis作为一个键值对数据库自然也不能少了。不过redis为了让事务更加快速与简单。所以redis不提供事务失败回滚的功能。如果一个事务失败了,需要工程师去手动回滚事务。

1.redis事务具有原子性,要么都执行,要么都不执行

2.redis事务过程中不会被打断

3.redis事务不支持失败回滚

4.redis事务中会忽略错误,继续执行错误后面的正确命令

2.redis事务举例

a.使用multi提示redis事务开始。接下来的语句不需要执行之需要缓存到事务执行队列里。

b.需要在事务中执行的命令

c.exec 提示redis开始执行之前缓存的事务。

3.事务demo

可以看出redis事务中的命令是一起执行,一起返回。

有明显错误的事务




事务将不允许提交执行。

4.使用watch避免竞争条件

如果多个用户登录到同一台redis服务器的同一个数据库里面。那么就会产生竞争条件。

例如用户1 set a =1 然后incr a

这时候用户2 也incr a这样最后的结果就是2这就是竞争条件,那么怎么避免呢。就是使用事务和watch 。



可以看到使用watch去监控之后,只要被监控的键对应的值被改变。基于这个键的事务就不回被执行。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值