Ⅰ、InnoDB锁算法的介绍 首先明确一点,锁锁住的是什么?锁锁住的是索引 Record Lock 单个行记录上的锁 Gap Lock 锁定一个范围,但不包含记录本身 Next key Lock Gap Lock + Record Lock 锁定一个范围,并且锁定记录本身 Ⅱ、模拟加锁场景 一般来说 ...
分类:
数据库 时间:
2018-06-13 00:15:58
阅读次数:
204
并发基础里主要明白下CAS和AQS吧 CAS:Compare And Swap 比较然后交换 AQS:AbstractqueuedSynchronizer抽象的队列式同步器 一、CAS CAS在很多无锁的并发里使用。无锁并发的意思就是,用不加锁的方式实现并发操作,这一波操作是不是很666啊 通常加锁 ...
分类:
编程语言 时间:
2018-06-11 18:00:20
阅读次数:
186
Redis+lua进行类似秒杀的实现由于项目需要,需要多线程去获取和修改数据库的库存,考虑到给数据库加锁效率低,所以采用redis+lua来进行实现。redis的单线程操作特性来执行lua脚本,通过lua脚本来保证原子性。如果通过单纯的redis指令来进行更改,在读和写之间会存在多线程并发更新的问题。1.首先定义redis数据结构goodId:{"total":100,"released":0;}
分类:
其他好文 时间:
2018-06-11 13:43:49
阅读次数:
148
在多线程环境中,为了保证共享数据的一致性,往往需要对共享数据的使用进行加锁,但是加锁操作本身就会带来一定的开销,这里可以使用将共享数据使用不可变对象进行封装,从而避免加锁操作。 1. 模型角色   ...
分类:
编程语言 时间:
2018-06-10 12:14:42
阅读次数:
254
阅读目录(Content) 单例模式 实现单例模式的几种方式 1.使用模块 2.使用装饰器 3.使用类 4.基于__new__方法实现(推荐使用,方便) 5.基于metaclass方式实现 相关知识 实现单例模式 回到顶部(go to top) 单例模式 单例模式(Singleton Pattern ...
分类:
编程语言 时间:
2018-06-10 00:30:39
阅读次数:
257
场景:当用户查看帖子详情时,把帖子的阅读量:ReadCount+1 select title,content,readcount from post where id='xxxx' --根据主键查询帖子 update post set readcount=readcount+1 where id=' ...
分类:
其他好文 时间:
2018-06-08 15:59:25
阅读次数:
374
锁定数据库的一个表的区别 SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除 SELECT * FROM table WITH (TABLOCKX) 其他事务不能读取表,更新和删除 SELECT语句中的各项“加锁选项”以及相应的功能说明。 NO ...
分类:
数据库 时间:
2018-06-07 19:43:07
阅读次数:
212
我们有这样的使用场景,某个订单在修改信息的时候,其他人不能修改相关的信息,比如不能做支付,不能退单等等,那么我们可以根据单号进行加锁,多Monitor做了如下扩展 定义接口 // 版权所有 深圳市科脉技术股份有限公司 // 文件名称:ILockExt.cs // 作 者:beck.huang // ...
一、node.js优缺点 node.js是单线程。 好处就是 1)简单 2)高性能,避免了频繁的线程切换开销 3)占用资源小,因为是单线程,在大负荷情况下,对内存占用仍然很低 3)线程安全,没有加锁、解锁、死锁这些问题 php node.js 坏处就是 如何解决高并发? node使用异步IO和事件驱 ...
分类:
Web程序 时间:
2018-06-07 14:14:37
阅读次数:
221
1、前言-》当进行一个增删改事务时,系统会默认加锁,查询时会出现执行等待,commit或rollback之后等待结束 2、事务-》理解:保证一个多操作的事情全部成功执行完成,否则回滚到未任何操作之前的状态 只有数据改变(增加、修改、删除)时才会引发事务,查询不会引发事务-》分类: ·显式事务:需要手 ...
分类:
其他好文 时间:
2018-06-06 23:58:26
阅读次数:
278