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

posted @ 2021-01-29 16:20  _kerry  阅读(3311)  评论(0编辑  收藏  举报