redisson的简单使用
引入maven坐标
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.16.0</version>
</dependency>
创建bean实例
package com.test.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;
/**
* 注意: Config 使用的是 org.redisson.config.Config
*/
@Configuration
public class RedisConfig {
@Bean
public RedissonClient redissonClient() {
Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379");
return Redisson.create(config);
}
}
添加包扫描
<!--批量扫描-->
<context:component-scan base-package="com.test.config"/>
使用RedissonClient
@Service
public class RedisTestServiceImpl implements RedisTestService {
@Autowired
private RedissonClient redissonClient;
@Override
public void mod() {
String lockKey = "NAME:LOCK";
RLock lock = redissonClient.getLock(lockKey); //获取RLock对象
try {
lock.lock(10, TimeUnit.SECONDS); //获取锁,上锁成功以后10秒自动解锁
System.out.println(Thread.currentThread().getId() + " " + System.currentTimeMillis());
} finally {
lock.unlock(); //释放锁, 确保加锁成功后,一定能释放锁
}
}
}