整合Redisson分布式锁

RedissonClient分布式锁

1、 导入pom文件

        <!--使用redisson作为分布式锁-->
        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>3.16.8</version>
        </dependency>

2、代码片段

    @Autowired
    private RedissonClient redissonClient;
    
public void testRedisson(HttpServletRequest request) {
        //new 一个redisson示列
        RLock testRedisson = redissonClient.getLock("testRedisson");
        try {
            // 为testRedisson上锁并且时间为两分钟
            testRedisson.lock(2, TimeUnit.MINUTES);
            System.out.println("执行代码中.................");
        } finally {
            System.out.println("释放锁");
            testRedisson.unlock();
        }
    }```

#### 3、工具类

```java
@Configuration
public class RedissonConfig {

    @Value("${spring.redis.host}")
    private String host;

    @Value("${spring.redis.port}")
    private String port;
    @Value("${spring.redis.password}")
    private String password;


    @Bean(destroyMethod = "shutdown")
    public RedissonClient redissonClient() {
        // 创建配置 指定redis地址及节点信息
        Config config = new Config();
//        config.useSingleServer().setAddress("redis://"+host+":"+port+"").setPassword(password);
        if (StringUtils.isNotEmpty(password)) {
            config.useSingleServer().setAddress("redis://" + host + ":" + port + "").setPassword(password);
        } else {
            config.useSingleServer().setAddress("redis://" + host + ":" + port + "").setPassword(null);
        }
        // 根据config创建出RedissonClient实例
        return Redisson.create(config);
    }
}

你可能感兴趣的:(Redis,分布式)