什么是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获取不到分布式锁,十秒后获取到分布式锁

本文深入探讨了Redis事务的概念,包括事务的开启、执行与取消操作,以及分布式锁的实现方式,通过代码演示展示了事务与锁的具体工作流程。
312

被折叠的 条评论
为什么被折叠?



