离散的知识点,方便以后整理

来源:互联网 发布:北大新生自缢知乎 编辑:程序博客网 时间:2024/05/18 20:53

1.数据库锁分为悲观锁和乐观锁,悲观锁又分有下面三种:

  • Record Lock:单个行记录的锁
  • Gap Lock:间隙锁,锁定一个范围,但不包含记录本身
  • Next-Key Lock:Gap Lock+Record Lock,锁定一个范围,并且锁定记录本身

2.三种替代悲观锁的方法

  • 使用redis来做分布式锁,redis采用多个来进行分片,其中一个redis挂了也没有关系,重新争抢就可以了
  • 使用主键防重方法,在方法的入口处使用防重表,能够拦截所有重复的订单,当重复插入时数据库会报一个重复错,程序直接返回

以上三种方式都必须要有过期时间,当锁定某一资源超时的时候,能够释放资源让竞争重新开始

1 0