Redis入门 -事务与锁

什么是Redis的事务?

redis事务就是一个命令执行的队列。将一系列预定义命令包装成一个整体。当执行时,一次性按照添加顺序依次执行,中间不会被打断或者干扰。

 

事务的基本操作

开启事务           设定事务的开启位置,此指令执行后,后续的所有指令均加入事务中
 
    multi

执行事务           设定事务的结束位置,同时执行事务。与multi成对出现,成对使用
   
    exec

取消事务           终止当前事务的定义,发生在mutil之后,exec之前

    discard
               

代码演示

            窗口1开启事务并对name重新赋值

 

           窗口2查询name值并name值没有发生改变

           窗口1exec执行事务,窗口2查值发生改变

 

事务的工作流程

 

事务注意事项

 

 

Redis的锁

锁的基本操作

对key添加监视锁,在执行exec前如果key发生了变化,终止事物执行
    
    watch key1 {key2......}      

取消所有key的监视
    
    unwatch

分布式锁

设置分布式锁
    
    setnx lock value

删除分布式锁

    del  lock

应用场景

            假设有十件商品参与秒杀,窗口1设置了分布式锁

 

           窗口2会因为窗口1占用lock锁,无法获取lock锁

                                            

          根据lock锁的特性,我们可以解决超卖问题

 

分布式锁的死锁问题

代码演示

         窗口1分布式锁设置10秒失效

 

        十秒内窗口2获取不到分布式锁,十秒后获取到分布式锁

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值