前提条件,
pom依赖,引入redisson
<!-- https://mvnrepository.com/artifact/org.redisson/redisson-spring-boot-starter -->
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.15.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.4.5</version>
</dependency>
基础
网上文档很少,直接看源码
1:找到自动装配类
作为一个成熟的框架,必须有自动装配 ~~~
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.redisson.spring.starter.RedissonAutoConfiguration 找到对应的类
很简单的类,预设了几个bean
2:主要的bean
RedissonClient
设置了一下默认的config
里面内置了本机的地址 127.0.0.1 :6379
所以这个bean可以直接用(如果没有改的话)
3:来个小demo。开启本地redis,啥都不用管
@RestController
public class Red {
@Autowired
private RedissonClient redissonClient;
@GetMapping("/redis")
public boolean get() throws InterruptedException {
RBucket<Object> bucket = redissonClient.getBucket("234");
boolean exists = redissonClient.getBucket("234").setIfExists("234");
Object o = bucket.get();
return exists;
}
}
了解config
自动装配其实啥都没做,只给了一些默认参数
config几个方式
1:文件型 支持 config.fromjson/fromyaml 。。其实没啥区别还是要代码实现
2:代码型
直接上代码,支持这一堆参数的自定义
给了一下默认参数,根据业务调整
重点看
好像也没啥
现在没那么多实例,先上单机的配置,其他的参数可以查看文档
定义一个yml key就是参数名称 value,看类内部的变量,要对应,不然解析不了
自定义RedissonClient
运行~~ 成功了
了解 RedissonClient
这个类似于 redistemplate ,提供面向redis操作的接口
对应关系 查看 https://www.bookstack.cn/read/redisson-wiki-zh/11.-Redis%e5%91%bd%e4%bb%a4%e5%92%8cRedisson%e5%af%b9%e8%b1%a1%e5%8c%b9%e9%85%8d%e5%88%97%e8%a1%a8.md
常用的
锁
最常见的锁
也可以不指定时间,看门狗每30秒续一次,直到解锁或服务挂了
消息
支持订阅
模拟生产/消费
RTopic myTopic = redissonClient.getTopic("myTopic");
myTopic.addListener(String.class,new MessageListener<String>(){
@Override
public void onMessage(CharSequence channel, String msg) {
System.out.println("消费消息"+msg);
}
});
RTopic myTopic1 = redissonClient.getTopic("myTopic");
myTopic1.publish("你好");
结果
基于流实现消息队列