配置redisson
引入必要依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.13.6</version>
</dependency>
配置redisson的bean-实例
package com.ligaixian.config;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyRedissonConfig {
@Bean
public RedissonClient redissonClient(){
Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379");
RedissonClient redissonClient = Redisson.create(config);
return redissonClient;
}
@Bean
public RedissonClient redissonClient(){
Config config = new Config();
config.useClusterServers()
.setScanInterval(2000)
.addNodeAddress("redis://127.0.0.1:7000", "redis://127.0.0.1:7001")
.addNodeAddress("redis://127.0.0.1:7002");
RedissonClient redissonClient = Redisson.create(config);
return redissonClient;
}
}
redisson实现分布式锁
package com.ligaixian.controller;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class RedissonController {
final RedissonClient redissonClient;
public RedissonController(RedissonClient redissonClient) {
this.redissonClient = redissonClient;
}
@GetMapping("/hello")
public String hello() {
RLock lock = redissonClient.getLock("my-lock");
lock.lock();
try {
System.out.println("加锁成功,执行业务...." + Thread.currentThread().getId());
Thread.sleep(30 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
System.out.println("释放锁..."+Thread.currentThread().getId());
lock.unlock();
}
return "hello";
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210208170753795.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNDA2NzM1OQ==,size_16,color_FFFFFF,t_70#pic_center)