Redis工作笔记-事务

目录

 

 

概念

操作


 

 

概念

和其他数据库一样,Redis,作为NoSQL数据库也是同样提供了事务机制。在Redis中,MULTI/EXEC/DISCARD/WATCH这四个命令实现了事务。

下面是事务的几个特点:

                    1. 事务中所有的命令都被串行化,在事务执行阶段,Redis不再为其他客户端提供任何服务,保证了事务中所有命令都被原子的执行;

                    2. 与关系型数据库中的事务相比,在Redis事务中如果有某一条命令执行失败,那么后面的命令任然会执行。

                    3. 通过MULTI开启一个事务,就会关系型数据库中的“BEGIN TRANSACTION”,通过EXEC/DISCARD命令提交以及回滚,和关系型数据库COMMIT/ROLLBAC语言。

                    4. 在事务开启之前,如果复活点与服务客户端器之间出现通信故障导致网络断开,其后所有待执行的语句都将不会被服务器执行。然后如果网络中断事件是发生在执行EXEC命令后,那么该事务中的所有命令都将被服务器执行;

                    5. 当使用Append-Only模式时,Redis会通过调用系统函数write将该事务内的所有写操作,全部写入磁盘中,然而如果在写入的过程中出现系统的崩溃,如电源故障导致的宕机,那么此时也许只有部分数据被写入磁盘,而另外一部分数据已经丢失。Redis服务器会在重启时执行一些列必要的检测,一旦发现类似的问题,就会立即退出并给出相应的错误提示。此时,就要充分利用Redis包提供的redis-check-aof工具,该工具可以帮助定位到数据不一致的数据,并将已经写入的部分数据进行回滚。修复后就可以重新启动Redis服务器。

 

 

操作

multi
incr t1
incr t2
exec

事务中存在失败的命令

multi
set a 3
lpop a
set a 4
exec

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值