微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

redis分布锁

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().

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐