Redis锁机制

事务冲突

有很多人有你的账户,同时去参加双十一抢购,一个请求想给金额减8000,一个请求想给金额减5000,一个请求想给金额减1000

悲观锁

总是假设最坏的情况,很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。

特点:

优点:可以完全保证数据的独占性和正确性

缺点:因为每次请求都会先对数据进行加锁, 然后进行数据操作,最后再解锁,而加锁释放锁的过程会造成消耗,所以性能不高;

乐观锁

总是假设最好的情况,很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量。Redis就是利用这种check-and-set机制实现事务的。

两种锁的比较

1、乐观锁并未真正加锁(不是真正的锁),效率高。但更新失败的概率也比较高,容易发生业务失败。

2、悲观锁依赖数据库锁,效率低。更新失败的概率比较低。

3、悲观锁阻塞事务,乐观锁回滚重试

【Redis】锁机制相关推荐

  1. 通过Expire实现Redis锁机制

    在我们的业务系统中,可能因为某种原因,用户会不断的点击表单提交按钮,为了较少对系统的 无意义访问.暴力提交 以及用户体验,我们利用redis的过期时间简单的实现了一种Redis锁 当用户提交表单的时候 ...

  2. Redis锁机制处理高并发

    文章正文 这里我们主要利用Redis的setnx的命令来处理高并发. setnx 有两个参数.第一个参数表示键.第二个参数表示值.如果当前键不存在,那么会插入当前键,将第二个参数做为值.返回 1.如果 ...

  3. redis 锁机制 ab测试

  4. 秒杀设计--mysql的锁机制应用和redis方案

    2019独角兽企业重金招聘Python工程师标准>>> 背景 在工作中接到一个需求:对于访问页面的前x名用户分发A奖品,x+1名及以后的用户分发另外一种奖品.在J2EE的开发中,我们 ...

  5. Redis 学习笔记-NoSQL数据库 常用五大数据类型 Redis配置文件介绍 Redis的发布和订阅 Redis_事务_锁机制_秒杀 Redis应用问题解决 分布式锁

    1.NoSQL数据库 1.1 NoSQL数据库概述 NoSQL(NosQL = Not Only sQL ),意即"不仅仅是sQL",泛指非关系型的数据库.NoSQL不依赖业务逻辑 ...

  6. nx set 怎么实现的原子性_正确地使用Redis的SETNX实现锁机制

    setNX,是set if not exists 的缩写,也就是只有不存在的时候才设置, 设置成功时返回 1 , 设置失败时返回 0 .可以利用它来实现锁的效果,但是很多人在使用的过程中都有一些问题没 ...

  7. Redis——事务 锁机制

    文章目录: 1.Redis中事务的定义 1.1 案例一:事务中组队成功.提交成功 1.2 案例二:事务中组队阶段报错.提交失败 1.3 案例三:事务中组队成功,提交有成功有失败情况 2.Redis中的 ...

  8. 【Redis】事物和锁机制乐观锁悲观锁

    目录 1. Redis 的事务定义 2. Multi.Exec.discard 3. 事务的错误处理 4. 事务冲突的问题 悲观锁 乐观锁 1. Redis 的事务定义 Redis 事务是一个单独的隔 ...

  9. Redis的事务和锁机制(乐观锁和悲观锁)

    Redis学习笔记(四) 1,Redis事务的定义 2,Redis事务操作的三个基本命令 3,解决Redis中的事务冲突(乐观锁和悲观锁) 3.1,悲观锁 3.2,乐观锁 3.3,Redis中使用乐观 ...

最新文章

  1. nodejs实现继承的简单代码示例
  2. php读取txt插入数据库,PHP读取TXT文件插入数据库
  3. [react] React v15中怎么处理错误边界?
  4. 在Linux下查看环境变量
  5. 扬帆际海:shopee跨境电商客服回复流程
  6. 极进网络(Extreme Networks )Extreme VDX 6940 交换机光模块配置方案
  7. 图片云存储服务商在阿里云和又拍云之间如何选择?
  8. 打开PowerPoint提示:PowerPoint上次起送时失败。以安全模式启动PowperPoint将帮助您纠正或发现启动中的问题
  9. 深度优先搜索/广度优先搜索
  10. 图像分割之分水岭分割算法
  11. css加密数据 图片解析破解
  12. 2021-2027全球与中国全闪存存储市场现状及未来发展趋势
  13. 虎年第一条微信,拜年啦
  14. 关于务实思维的务实思考
  15. 冒泡排序由浅入深详细分析图解
  16. Jackknife 刀切法
  17. c语言体积的单词,C语言程序:求常用圆形体的体积
  18. 后疫情时代,藏在同程艺龙财报里的“增长密码”
  19. 数组去重---泥腿子前端
  20. Transaction synchronization is not active问题

热门文章

  1. 阿里云ubuntu下载地址
  2. windows10开热点无法连接网络的原因
  3. 优雅的 JavaScript 排序算法(ES6)
  4. 基于NodeJS英雄联盟游戏游戏综合网站
  5. 【并发编程】线程池参数设置与动态调整
  6. json数据根据某个字段值筛选,截取特定字段
  7. 在vmbox里面安装Ubuntu16.04并且配置jdk以及Hadoop配置的教程【附带操作步骤】
  8. Spring Security权限管理系统开发实战
  9. 青龙面板每日签到-DailyCheckIn版本【图文教程】
  10. 【Datawhale 组队学习Pytorch】Task01 Pytorch安装和基础知识