Redis锁,乐观锁与悲观锁

悲观锁

  • 认为什么时候都会出问题,无论做什么都会加锁

乐观锁

  • 很乐观,认为什么时候都不会出问题,所以不会上锁。

  • 更新数据时去判断一下,在此期间,是否有人修改过这个数据

  • 应用于:秒杀场景

**watch**相当于乐观锁

  • 正常执行
127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> set money 100
QUEUED
127.0.0.1:6379(TX)> set out 0
QUEUED
127.0.0.1:6379(TX)> decrby money 20
QUEUED
127.0.0.1:6379(TX)> incrby out 20
QUEUED
127.0.0.1:6379(TX)> exec
1) OK
2) OK
3) (integer) 80
4) (integer) 20
  • 非正常执行【原线程才执行一半,又出现新的线程,把原数据修改了时候】

1、先加入事务,但是没有执行

在这里插入图片描述

加入新的线程,修改了数据

在这里插入图片描述

执行结果

在这里插入图片描述

解决方案

#解锁
127.0.0.1:6379> UNWATCH
OK
#再次监视 ,这次监视的是  新线程Set之后 的值
watch money

相关推荐

  1. 乐观悲观

    2024-03-30 23:36:02       19 阅读
  2. 悲观乐观介绍,优缺点

    2024-03-30 23:36:02       11 阅读
  3. 乐观悲观

    2024-03-30 23:36:02       10 阅读
  4. 乐观悲观

    2024-03-30 23:36:02       6 阅读
  5. Go语言中的乐观悲观

    2024-03-30 23:36:02       45 阅读
  6. python乐观悲观

    2024-03-30 23:36:02       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-30 23:36:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-30 23:36:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-30 23:36:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-30 23:36:02       18 阅读

热门阅读

  1. Android TV 4K UI

    2024-03-30 23:36:02       15 阅读
  2. Mysql中的那些锁

    2024-03-30 23:36:02       19 阅读
  3. axios请求类型是文件流怎么显示报错信息

    2024-03-30 23:36:02       14 阅读
  4. UI 神器 - Vue3 中如何使用 element-plus

    2024-03-30 23:36:02       18 阅读
  5. Composer常见错误解决

    2024-03-30 23:36:02       22 阅读
  6. 【LeetCode热题100】20. 有效的括号(栈)

    2024-03-30 23:36:02       21 阅读
  7. 《leetcode hot100》2. 两数相加

    2024-03-30 23:36:02       17 阅读
  8. 【算法笔记】 树形DP算法总结

    2024-03-30 23:36:02       23 阅读
  9. Linux中定时任务的配置及注意事项

    2024-03-30 23:36:02       15 阅读