分布式锁的应用

一 场景分析

在高并发情况下,即使对每一个 Tomcat 加了锁,也解决不了多个线程同时访问 Mysql 的问题,此时需要加一把分布式锁,在同一时刻只有一个 Tomcat 去访问 Mysql。

二 解决方案

1 使用 redisson 去解决

<dependency>    
    <groupId>org.redisson</groupId>
    <artifactId>redisson</artifactId>    
    <version>3.11.1</version>
</dependency>

2 代码参考

上面这段代码还是存在问题,如果第1个线程还没些写缓存,第2个线程就已经开始从缓存中获取数据了,那么第2个线程获取到的数据将是空,可使用下面代码进行优化。

如果第1个线程没有执行完,第2个线程就一直处于休眠,然后从 redis 获取数据的循环过程中,直到第2个线程获取到数据为止。

3 博客参考

Redisson基本用法 - 废物大师兄 - 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值