⑤. 天上飞的理念(RedLock)必然有落地的实现(Redisson)
- ⑥. redission解决了两个问题
- 锁的自动续期,如果业务超长,运行期间自动给锁续上新的30s,不用担心业务时间长
- 如果业务宕机了,这个默认的过期时间是30s,避免了死锁
- 加锁的业务只要运行完成,就不会给当前锁续期,即使不手动解锁,锁默认在30s以后自动删除
②. 基于Redisson的入门案例
- ①. 导入pom
<!--引入redisson分布式锁--> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.13.4</version> </dependency>
②. 建立配置类,参考文档
//2.建立配置类 @Configuration public class MyRedisConfig { /** * 所有对Redisson的使用 * @return * @throws IOException */ //https://github.com/redisson/redisson/wiki/14.-%E7%AC%AC%E4%B8%89%E6%96%B9%E6%A1%86%E6%9E%B6%E6%95%B4%E5%90%88 @Bean(destroyMethod="shutdown") public RedissonClient redisson() throws IOException { Config config = new Config(); // 创建单例模式的配置 //config.useSingleServer().setAddress("redis://" + ipAddr + ":6379"); config.useSingleServer().setAddress("redis://192.168.56.10:6379"); return Redisson.create(config); } }
③. 进行单元测试
@Autowired //RedissonClient redissonClient; RedissonClient redisson; @Test public void redission(){ System.out.println(redissonClient); RLock lock = redisson.getLock("lock"); }