之前讲了基于Redis原子操作实现分布式锁,代码比较冗余而且有缺陷,Redis官方推荐Redisson,同样也是基于Redis,但Redisson提供了很多分布式操作服务,直接调用封装好的API操作,代码更直观。
Redisson提供的操作服务和AQS队列同步器类似,不过AQS基于内存,而Redisson基于Redis所以可用于分布式环境。
1. 添加依赖
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.5.0</version>
</dependency>
2. application.yml
spring:
redis:
database: 0
host: localhost
port: 6379
# lettuce:
# pool:
# max-active: 8
# max-wait: -1
# max-idle: 8
# min-idle: 0
jedis:
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 0
timeout: 5000
3. Redisson配置类
以下配置为单机模式,Redisson还支持哨兵和集群模式,
参考:https://blog.csdn.net/unclecoco/article/details/99412915
@Configuration
public class RedissonConfiguration {
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private String port;
@Value("${spring.redis.password}")
private String password;
/**
* 单机模式,此外还支持哨兵和集群配置
* 详见https://blog.csdn.net/unclecoco/article/details/99412915
*