【Redis】锁机制
Redis锁机制
事务冲突
有很多人有你的账户,同时去参加双十一抢购,一个请求想给金额减8000,一个请求想给金额减5000,一个请求想给金额减1000
悲观锁
总是假设最坏的情况,很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。
特点:
优点:可以完全保证数据的独占性和正确性
缺点:因为每次请求都会先对数据进行加锁, 然后进行数据操作,最后再解锁,而加锁释放锁的过程会造成消耗,所以性能不高;
乐观锁
总是假设最好的情况,很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量。Redis就是利用这种check-and-set机制实现事务的。
两种锁的比较
1、乐观锁并未真正加锁(不是真正的锁),效率高。但更新失败的概率也比较高,容易发生业务失败。
2、悲观锁依赖数据库锁,效率低。更新失败的概率比较低。
3、悲观锁阻塞事务,乐观锁回滚重试
【Redis】锁机制相关推荐
- 通过Expire实现Redis锁机制
在我们的业务系统中,可能因为某种原因,用户会不断的点击表单提交按钮,为了较少对系统的 无意义访问.暴力提交 以及用户体验,我们利用redis的过期时间简单的实现了一种Redis锁 当用户提交表单的时候 ...
- Redis锁机制处理高并发
文章正文 这里我们主要利用Redis的setnx的命令来处理高并发. setnx 有两个参数.第一个参数表示键.第二个参数表示值.如果当前键不存在,那么会插入当前键,将第二个参数做为值.返回 1.如果 ...
- redis 锁机制 ab测试
- 秒杀设计--mysql的锁机制应用和redis方案
2019独角兽企业重金招聘Python工程师标准>>> 背景 在工作中接到一个需求:对于访问页面的前x名用户分发A奖品,x+1名及以后的用户分发另外一种奖品.在J2EE的开发中,我们 ...
- Redis 学习笔记-NoSQL数据库 常用五大数据类型 Redis配置文件介绍 Redis的发布和订阅 Redis_事务_锁机制_秒杀 Redis应用问题解决 分布式锁
1.NoSQL数据库 1.1 NoSQL数据库概述 NoSQL(NosQL = Not Only sQL ),意即"不仅仅是sQL",泛指非关系型的数据库.NoSQL不依赖业务逻辑 ...
- nx set 怎么实现的原子性_正确地使用Redis的SETNX实现锁机制
setNX,是set if not exists 的缩写,也就是只有不存在的时候才设置, 设置成功时返回 1 , 设置失败时返回 0 .可以利用它来实现锁的效果,但是很多人在使用的过程中都有一些问题没 ...
- Redis——事务 锁机制
文章目录: 1.Redis中事务的定义 1.1 案例一:事务中组队成功.提交成功 1.2 案例二:事务中组队阶段报错.提交失败 1.3 案例三:事务中组队成功,提交有成功有失败情况 2.Redis中的 ...
- 【Redis】事物和锁机制乐观锁悲观锁
目录 1. Redis 的事务定义 2. Multi.Exec.discard 3. 事务的错误处理 4. 事务冲突的问题 悲观锁 乐观锁 1. Redis 的事务定义 Redis 事务是一个单独的隔 ...
- Redis的事务和锁机制(乐观锁和悲观锁)
Redis学习笔记(四) 1,Redis事务的定义 2,Redis事务操作的三个基本命令 3,解决Redis中的事务冲突(乐观锁和悲观锁) 3.1,悲观锁 3.2,乐观锁 3.3,Redis中使用乐观 ...
最新文章
- nodejs实现继承的简单代码示例
- php读取txt插入数据库,PHP读取TXT文件插入数据库
- [react] React v15中怎么处理错误边界?
- 在Linux下查看环境变量
- 扬帆际海:shopee跨境电商客服回复流程
- 极进网络(Extreme Networks )Extreme VDX 6940 交换机光模块配置方案
- 图片云存储服务商在阿里云和又拍云之间如何选择?
- 打开PowerPoint提示:PowerPoint上次起送时失败。以安全模式启动PowperPoint将帮助您纠正或发现启动中的问题
- 深度优先搜索/广度优先搜索
- 图像分割之分水岭分割算法
- css加密数据 图片解析破解
- 2021-2027全球与中国全闪存存储市场现状及未来发展趋势
- 虎年第一条微信,拜年啦
- 关于务实思维的务实思考
- 冒泡排序由浅入深详细分析图解
- Jackknife 刀切法
- c语言体积的单词,C语言程序:求常用圆形体的体积
- 后疫情时代,藏在同程艺龙财报里的“增长密码”
- 数组去重---泥腿子前端
- Transaction synchronization is not active问题