目录
一、本地锁
二、分布式锁
①什么是分布式锁?
②为什么需要分布式锁?
分布式项目时,但本地锁只能锁住当前服务,需要分布式锁
③分布式锁引发死锁问题
死锁的几种方式
①设置锁之后,删除锁之前断电了(在加锁的时候也设置过期时间,也就是加锁的时候设置成原子性的)
②业务的执行时间比较长,在这个时间中锁已经过期了,这时就删除了别人的锁(设置一个随机值,然后进行比较是否是当前的这个锁)
③业务执行时间比较长,比较随机值之后确定是当前锁,这时锁已经过期了,别人占了这个锁,所以我们删的就是别人的锁
④假设现在一个用户A访问表A(锁住了表A),然后试图访问表B; 另一个用户B访问表B(锁住了表B),然后试图访问表A。
三、Redisson完成分布式锁
①Redisson是什么?
Redisson 是架设在 Redis 基础上的一个 Java 驻内存数据网格(In-Memory Data Grid)。充分的利用了 Redis 键值数据库提供的一系列优势,基于 Java 实用工具包中常用接口