1.redis分布式锁应用的场景?
1)防止缓存穿透:热点数据过期,大量线程访问mysql
2) 防止秒杀超卖:库存数量同步给redis后,对redis数据进行扣减
3)双写一致性:缓存的数据,被修改,导致数据库与缓存数据不一致。
4)接口幂等性:由于网络波动或者快速点击,导致发出多次请求。
2.分布式锁的死锁问题?
死锁:如果某个线程在执行锁逻辑过程中宕机,导致没有删除锁。
死锁的解决:
添加过期时间
原子性添加过期时间
3.分布式锁(redisson)
redisson是一个在redis基础上实现的java驻内存数据网络。(可以解决死锁的问题)
1.可重入锁(reentrant Lock)(redisson内部提供了一个监控锁的看门狗,看门狗检查锁的超过时间默认下30秒)
RLock lock = redisson.getLock("anyLock")
lock.lock().
标签:redisson,过期,lock,redis,死锁,分布,分布式 From: https://www.cnblogs.com/blogs6/p/16655342.html