Redis事务(乐观锁和悲观锁)

在redis中的事务还是和之前学过的关系型数据库的事务有区别的。

redis原子性

所谓原子操作是指不会被线程调度机制打断的操作(两个线程之间的操作互不影响,每个操作都是独立的线程)

单线程中,能够在单条指令中完成的操作都可以认为是"原子操作",因为终端只能发生于指令之间

在多线程中,不能被其他进程(线程)打断的操作就叫原子操作

Redis 单命令的原子性主要得益于Redis的单线程。

乐观锁和悲观锁

悲观锁:每次执行操作的时候都认为数据会被别人更改,所以在每次操作的时候都会上锁,这样别人想要拿到这个数据时就需要等到释放时才能修改。

乐观锁:每次执行操作的时候都会认为数据未被修改,但是在修改数据的时候会判断此期间数据是否被别人修改,一个事务执行原子操作后,对数据version进行修改,另一事务进行原子操作时对数据的version进行判断。

乐观锁适用于多读的应用类型,这样可以提高吞吐,redis就是使用这种chek - and -set机制实现事务的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值