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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM