redis事务

Redis的事务提供了MULTI和WATCH等命令,保证命令的原子性和连续执行,但不保证一致性,没有回滚功能。如果命令出错,从3.0.6版本开始,redis会继续执行其他有效命令。WATCH命令用于监控键,如果在事务开始前键被修改,事务将失败,所有命令都不会执行。可以结合WATCH和MULTI模拟incr操作。
摘要由CSDN通过智能技术生成

MULTI命令

跟其他的事务一样,redis事务可以保证同一个事务内的命令同时都执行或者都不执行【保证事务的原子性】。同时redis事务可以保证事务内的执行操作是连续的,中间不会插入执行其他命令(即,如果客户端A向redis服务发送包含命令1、命令2、命令3的事务,当A发送EXEC命令后,redis服务执行命令1,然后此时若客户端B向redis服务发送命令4,命令4不会插入到命令1、2、3间执行,命令1、2、3是依次连续执行的)。但是Redis事务不保证一致性,因此Redis事务的回滚操作需要客户端自己去是实现处理。
redis事务使用方式:

redis> MULTI                    //开始事务
redis> SADD setone 100          //事务内命令
redis> SADD settwo 200          //事务内命令
redis> EXEC                 //执行事务

redis会维护一个事务队列,将MULTI后的所有命令到放到事务队列中,当redis接收到EXEC命令后,会依次执行事务队列。
但是值得注意的是,不像其他关系数据库的事务,redis事务并没有回滚(rollback)功能【不保证一致性】,事务内命令出错后,需要客户端自己实现回滚操作,将数据库回复到事务执行前的状态。
若事务中有命令出错,redis会继续执行其他有效的命令【redis版本为3.0.6】,
如下示例:

[ojh@localhost redisTest]$ redis-server -v
Redis server v=3.0.6 sha=00000000:0 malloc=libc bits=64 build=df1dc433a1cb5ac8

//事务一
127.0.0.1:
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值