SpringBoot整合Redisson的步骤(单机版)

 更新时间:2021年05月24日 14:48:33   作者:youcong  
Redisson非常适用于分布式锁,而我们的一项业务需要考虑分布式锁这个应用场景,于是我整合它做一个初步简单的例子(和整合redis一样)。

Redisson、Jedis、Lettuce优缺点对比

(1)Redisson

优点:
实现了分布式特性和可扩展的 Java 数据结构,适合分布式开发;
API线程安全;
基于Netty框架的事件驱动的通信,可异步调用。

缺点:
API更抽象,学习使用成本高。

(2)Jedis

优点:
提供了比较全面的Redis操作特性的API
API基本与Redis的指令一一对应,使用简单易理解。

缺点:
同步阻塞IO;
不支持异步;
线程不安全。

(3)Lettuce

优点:
线程安全;
基于Netty 框架的事件驱动的通信,可异步调用;
适用于分布式缓存。

缺点:
API更抽象,学习使用成本高。

其中Jedis是用的最普遍的(确实非常简单),特别是很多单体应用或者伪分布式应用等。

SpringBoot整合Redisson

1.添加Maven依赖

<!-- redisson-springboot -->
   <dependency>
       <groupId>org.redisson</groupId>
       <artifactId>redisson-spring-boot-starter</artifactId>
       <version>3.11.4</version>
   </dependency>

2.配置文件

spring:
  redis:
    host: 127.0.0.1
    port: 6379
    database: 0
    timeout: 5000

3.添加配置类

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
public class RedissonConfig {

    @Autowired
    private RedisProperties redisProperties;

    @Bean
    public RedissonClient redissonClient() {
        Config config = new Config();
        String redisUrl = String.format("redis://%s:%s", redisProperties.getHost() + "", redisProperties.getPort() + "");
        config.useSingleServer().setAddress(redisUrl).setPassword(redisProperties.getPassword());
        config.useSingleServer().setDatabase(3);
        return Redisson.create(config);
    }

}

4.代码测试(简单的存取)

import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/redisson")
public class RedissonController {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @GetMapping("/save")
    public String save(){
        stringRedisTemplate.opsForValue().set("key","redisson");
        return "save ok";
    }

    @GetMapping("/get")
    public String get(){
        return stringRedisTemplate.opsForValue().get("key");
    }

}

以上就是SpringBoot整合Redisson的步骤(单机版)的详细内容,更多关于SpringBoot整合Redisson的资料请关注脚本之家其它相关文章!

相关文章

  • Spring\SpringBoot配置连接数据库的方法

    Spring\SpringBoot配置连接数据库的方法

    最近在学习SpringBoot,第一步就是要配置数据库,本文详细的介绍了Spring\SpringBoot配置连接数据库的方法,有需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • java字符串遍历的几种常用方法总结

    java字符串遍历的几种常用方法总结

    Java字符串是一系列的Unicode字符序列,但是它却常常被误认为是char序列,这篇文章主要给大家介绍了关于java字符串遍历的几种常用方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • 详解java 客户端链接不上redis解决方案

    详解java 客户端链接不上redis解决方案

    这篇文章主要介绍了详解java 客户端链接不上redis解决方案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-01-01
  • 解决springboot配置文件组解决自动配置属性无法注入问题

    解决springboot配置文件组解决自动配置属性无法注入问题

    在使用Spring Boot时,可能会遇到配置文件属性注入失败的问题,本文描述了一个案例,其中尝试使用profile文件组指定不同环境下的配置文件,但遇到了属性无法成功注入的情况,提供的解决办法是将Spring Boot的版本号从2.2.0.RELEASE升级到2.4.0
    2024-09-09
  • SpringBoot事件发布与监听超详细讲解

    SpringBoot事件发布与监听超详细讲解

    今天去官网查看spring boot资料时,在特性中看见了系统的事件及监听章节,所以下面这篇文章主要给大家介绍了关于SpringBoot事件发布和监听的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 理解Java设计模式编程中的迪米特原则

    理解Java设计模式编程中的迪米特原则

    这篇文章主要介绍了Java设计模式编程中的迪米特原则,迪米特原则旨在降低类与类之间的耦合,需要的朋友可以参考下
    2016-02-02
  • Java Fluent Mybatis 分页查询与sql日志输出详解流程篇

    Java Fluent Mybatis 分页查询与sql日志输出详解流程篇

    Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。国内又以Mybatis用的多,基于mybatis上的增强框架,又有mybatis plus和TK mybatis等。今天我们介绍一个新的mybatis增强框架 fluent mybatis关于分页查询、sql日志输出流程
    2021-10-10
  • Java主流压缩解压工具对比、用法与选取详解

    Java主流压缩解压工具对比、用法与选取详解

    开发过程中可能会用到压缩文件的需求,下面这篇文章主要给大家介绍了关于Java主流压缩解压工具对比、用法与选取的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • 浅析Java中为什么要设计包装类

    浅析Java中为什么要设计包装类

    我们知道Java是一个面相对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型,它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作
    2021-06-06
  • 基于Java实现简单贪吃蛇游戏

    基于Java实现简单贪吃蛇游戏

    这篇文章主要为大家详细介绍了基于Java实现简单贪吃蛇,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04

最新评论