????????作者:Java学术趴 ????仓库:Github、Gitee ✏️博客:CSDN、掘金、InfoQ、云+社区 ????公众号:Java学术趴 ????特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。 ????版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号 联系小编。
☠️每日毒鸡汤:一件事你犹豫去不去做,那就是该立即动身做的。
Redis中的事务:就是把所有要执行的操作都按照顺序排列起来,按照顺序一个个的执行,每一个操作的执行不会干扰到其他操作。
创建一个事务分为三步:
开始事务编写命令提交/回滚事务编写一个事务提交成功的流程
编写一个事务回滚的流程
第一种:在组队中,如果某个命令出现错误,执行时整个队列中的命令都会被取消
第二种:如果执行阶段某个命令出现了错误,则只有出现错误的命令不会被执行,而其他的命令都会执行。
悲观锁:顾名思义,就是很悲观的锁,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据的就会 block ,知道它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制。比如:行锁、表锁、读锁、写锁等等,都是在操作之前先上锁。
乐观锁:顾名思义,就是很乐观的锁,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号的机制。乐观锁适用于多读的场景,这样可以提高吞吐量, Redis就是利用这种 check-and-set 机制实现事务的。