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