redis事务

来源:互联网 发布:网络协议和服务的区别 编辑:程序博客网 时间:2024/05/17 08:30

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去监控之后,只要被监控的键对应的值被改变。基于这个键的事务就不回被执行。


0 0
原创粉丝点击