Redisson框架的介绍与应用
Redisson框架的介绍
我们来学习Redission框架的讲解及项目集成,首先我们看一下目录,我们第一个要对Redission进行一个介绍,
然后Redission相关的一些官方网站呢,也会介绍给大家,然后把Redission框架集成进来,那首先我们看一下Redission的
一个介绍,Redission是架设在Redis基础上的一个JAVA驻内存数据网格,Redission是基于NIO的Netty框架上,充分的利用了
Redis键值数据库提供的一系列优势,而且Redis在JAVA使用工具包中,常用接口的基础上,为使用者提供一系列具有分布式
特性的常用工具类,这些也会领着大家一起来看一下的
Redission使得原本作为协调单机多线程并发程序的工具包,获得了协调分布式多机多线程的能力,大大降低了
设计和研发大规模分布式系统的难度,这句话我们后续使用Redission,来完成分布式锁的时候,肯定会有体会的,
同时Redission结合各富特色的分布式服务,更进一步简化了分布式环境中,程序相互之间的一个协作,例如我们要
使用的分布式锁
那我们看一下Redission的官方网站,首先他是redission.org,我们在redission的github上,
也可以点链接进去
官网:
https://redisson.org/
官方文档:
https://github.com/redisson/redisson/wiki
然后我们看一下redission的集成,首先我们要添加依赖,我们使用的版本呢,是2.9.0
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>2.9.0</version>
</dependency>
同时redission在添加依赖之后,还要加上一个fasterxml的依赖,那后续的实战当中,也会领着来做的
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-avro</artifactId>
<version>2.9.0</version>
</dependency>
//------------------------------------------------------
Redisson框架的应用
1.在项目的pom文件中引入Redisson
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>2.9.0</version>
</dependency>
2.在项目的pom文件中引入Redisson的依赖,注意(依赖不要引错了,这里引的是avro的)
<!-- redisson依赖 -->
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-avro</artifactId>
<version>2.9.0</version>
</dependency>
3.构建Redisson初始化类
@Component
@Slf4j
public class RedissonManager {
private Config config;
private Redisson redisson = null;
private static String redis1Ip = PropertiesUtil.getProperty("redis1.ip");//redis1.ip=127.0.0.1
private static Integer redis1Port = Integer.parseInt(PropertiesUtil.getProperty("redis1.port"));//redis1.port=6379
private static String redis2Ip = PropertiesUtil.getProperty("redis2.ip");//redis2.ip=127.0.0.1
private static Integer redis2Port = Integer.parseInt(PropertiesUtil.getProperty("redis2.port"));//redis2.port=6380
public Redisson getRedisson(){
return redisson;
}
@PostConstruct//在spring加载此类组件(Component)的时候调用此方法。
private void init(){
try {
config.useSingleServer().setAddress(new StringBuilder().append(redis1Ip).append(":").append(redis1Port).toString());
Redisson.create(config);
log.info("初始化Redisson结束");
} catch (Exception e) {
log.error("redisson init error",e);
}
}
//如果不添加下面这个方法,那项目在关闭Tomcat的时候会有线程未关闭。导致Tomcat无法顺利关闭。(重点)
@PreDestroy //被@PreConstruct修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。被@PreConstruct修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前。
private void end(){
redisson.shutdown();
}
}
//---------
参考:
https://blog.csdn.net/Leon_Jinhai_Sun/article/details/94585283