# redisson-spring-boot
**Repository Path**: xphsc/redisson-spring-boot
## Basic Information
- **Project Name**: redisson-spring-boot
- **Description**: redisson-spring-boot低耦合集成的高度扩展组件
redisson 操作以及限流 分布式锁 延迟消息队列,消息队列,布隆过滤器
安装教程
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://gitee.com/xphsc/redisson-spring-boot
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2021-09-25
- **Last Updated**: 2025-01-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: 分布式锁, 延迟消息队列, 限流, 消息订阅, redisson操作-布隆过滤器
## README
# redisson-spring-boot 低耦合集成的高度扩展组件
[]
[]
[)]
[](LICENSE)
#### 介绍
**redisson-spring-boot低耦合集成的高度扩展组件**
redisson Spring Boot低耦合集成的高度扩展组件
* redisson 操作以及限流 分布式锁 延迟消息队列,消息队列,布隆过滤器
#### 安装教程
~~~
cn.xphsc.boot
redisson-spring-boot-starter
1.0.5
~~~
#### 3使用说明
yaml(和spring data redis基本一样)
~~~
spring:
redis:
host: localhost
password: xxx
database: 2
~~~
####配置说明
参数 |说明
---|---
host | url地址
port | 端口
password | 密码
database |database
ClusterServer | 集群
codec | codec
connectionMinimumIdleSize | 最小空闲连接数,默认值:10,最小保持连接数(长连接)
idleConnectionTimeout | 而连接空闲时间超过了该数值,这些连接将会自动被关闭,并从连接池里去掉
pingTimeout | ping节点超时,单位:毫秒,默认1000
connectTimeout | 连接等待超时,单位:毫秒,默认10000
timeout | 命令等待超时,单位:毫秒,默认3000;等待节点回复命令的时间。该时间从命令发送成功时开始计时
retryAttempts| 命令失败重试次数,默认值:3
retryInterval|命令重试发送时间间隔,单位:毫秒,默认值:1500
reconnectionTimeout|重新连接时间间隔,单位:毫秒,默认值:3000;连接断开时,等待与其重新建立连接的时间间隔
failedAttempts|执行失败最大次数, 默认值:3;失败后直到 reconnectionTimeout超时以后再次尝试。
subscriptionsPerConnection|单个连接最大订阅数量,默认值:5
clientName|客户端名称
subscriptionConnectionMinimumIdleSize|长期保持一定数量的发布订阅连接是必须的、
connectionPoolSize|发布和订阅连接池大小,默认值:50
dnsMonitoring|是否启用DNS监测,默认值:false
dnsMonitoringInterval|DNS监测时间间隔,单位:毫秒,默认值:5000
3.3.1限流
~~~
public class TestController {
@GetMapping("/get")
@RateLimit(rate = 1, rateInterval = "10s")
public String get() {
return "get";
}
@GetMapping("/get1")
@RateLimit(rate = 2, rateInterval = "10s",rateExpression = "${spring.ratelimiter.max:2}")
public String get1() {
return "get";
}
@GetMapping("/get2")
@RateLimit(rate = 1, rateInterval = "2s")
public String get2( @RateLimitKey(value = "#name") String name) {
return "get";
}
@RateLimit(rate = 5, rateInterval = "10s",keys = {"#user.name","#user.id"})
* public String hello(User user) { }
~~~
3.3.2分布式锁
~~~
@RedissonLock(name = "test-lock", waitTime = 2, lockTimeoutStrategy = LockTimeoutStrategy.FAIL_FAST)
@Override
public void test(@RedissonLockKey String id) {
this.testLock(id, user);
}
@RedissonLock(name = "test-lock", keys = {"#id"}, leaseTime=-1)
public void testLock(String id){}
~~~
3.3.3 延迟队列
~~~
@Component
public class MyDelayQueueListener {
@RedissonDelayQueueListener(queueName = "delay-message-queue-name")
public void onMessage(DelayMessage delayMessage) {
System.out.println("--delayMessage---"+delayMessage.getName());
}
@RedissonDelayQueueListener(queueName = "delay1-message-queue-name")
public void onMessage1(DelayMessage delayMessage) {
System.out.println("---delayMessage1----"+delayMessage.getName());
}
}
@Autowired
private DelayQueueTemplate delayQueueTemplate;
@Test
public void test(){
DelayMessage delayMessage=new DelayMessage();
delayMessage.setName("小王");
delayQueueTemplate.send("delay-message-queue-name", delayMessage, 1, TimeUnit.SECONDS);
}
@Test
public void test1(){
DelayMessage delayMessage=new DelayMessage();
delayMessage.setName("小熊");
delayQueueTemplate.send("delay1-message-queue-name", delayMessage, 1, TimeUnit.SECONDS);
}
~~~
3.3.4 消息队列
~~~
@Component
public class MyQueueListener {
@RedissonQueueListener(queueName = "message-message-queue-name")
public void onMessage(Message message) {
System.out.println("---message--------"+message.getName());
}
@RedissonQueueListener(queueName = "message1-message-queue-name")
public void onMessage1(Message message) {
System.out.println("message1------"+message.getName());
}
}
@Autowired
private RedissonQueueTemplate queueTemplate;
@Test
public void test(){
Message message=new Message();
message.setName("---message------");
queueTemplate.send("message-message-queue-name", message);
}
~~~