SpringBoot集成redisson全过程

 更新时间:2024年10月28日 10:05:33   作者:却诚Salong  
本文主要介绍了如何集成Redisson,包括环境配置、引入Redisson的依赖、添加Redisson的配置类以及Redisson的常见使用方法,在类中注入Redisson后,可以获取锁对象和使用,这些都是作者的个人经验,供读者参考

SpringBoot集成redisson

1.首先需要已经集成redis的环境

如何集成redis这里不做描述。

2.引入redisson的依赖

(这里使用的是3.14.1版本)

<dependency>
     <groupId>org.redisson</groupId>
     <artifactId>redisson</artifactId>
     <version>3.14.1</version>
 </dependency>

3.添加redisson的配置类

package com.salong.framework.config;

import lombok.Data;

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Data
@Configuration
public class RedissonConfig {
    @Value("${spring.redis.host}")
    private String host;
    @Value("${spring.redis.port}")
    private String port;
    @Value("${spring.redis.password}")
    private String password;

    @Bean
    public RedissonClient getRedisSon() {
        Config config = new Config();
        String address = new StringBuilder("redis://").append(host).append(":").append(port).toString();
        config.useSingleServer().setAddress(address);
        if (null != password && !"".equals(password.trim())) {
            config.useSingleServer().setPassword(password);
        }
        return Redisson.create(config);
    }
}

其中,我这里使用的是单机的redis,如果是其他方式(主从,哨兵,集群)的话,按照下面的进行修改配置即可。

4.redisson的常见使用

4.1 在类中注入redisson

    @Autowired
    private RedissonClient redissonClient;

4.2 获取锁对象和使用。

public void test(){
        //竞争的锁对象名称
        RLock lock = redissonClient.getLock("lockName");
        //tryLock可以不加参数,不会抛异常,仅尝试获取一次锁对象
        //tryLock(5,10,TimeUnit.SECONDS)意思为等待锁对象5秒钟,获取到对象10秒钟后释放锁对象,调用此方法会抛出异常
        if (lock.tryLock()){
            try {
                //处理业务逻辑代码......    
            }finally {
                lock.unlock();   
            }
        }
        //lock.isLocked()误区:此方法不是判断当前线程是否被锁定,而是判断该锁对象当前是否被任意线程所持有。
        // 所以不能使用if(lock.isLocked()){lock.unlock();}的写法来释放锁。
        boolean locked = lock.isLocked();
        //当前线程释放锁对象
        lock.unlock();
    }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java-IO流实验

    Java-IO流实验

    流是一种抽象概念,它代表了数据的无结构化传递。。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出,希望能给您带来帮助
    2021-06-06
  • mybatis多对多关联实战教程(推荐)

    mybatis多对多关联实战教程(推荐)

    下面小编就为大家带来一篇mybatis多对多关联实战教程(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • mybatis自动生成时如何设置不生成Example类详解

    mybatis自动生成时如何设置不生成Example类详解

    这篇文章主要给大家介绍了关于mybatis自动生成时如何设置不生成Example类的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • java读取word-excel-ppt文件代码

    java读取word-excel-ppt文件代码

    OFFICE文档使用POI控件,PDF可以使用PDFBOX0.7.3控件,完全支持中文,用XPDF也行,不过感觉PDFBOX比较好,而且作者也在更新。水平有限,万望各位指正
    2009-04-04
  • Spring Cloud 负载均衡器 Ribbon原理及实现

    Spring Cloud 负载均衡器 Ribbon原理及实现

    这篇文章主要介绍了Spring Cloud 负载均衡器 Ribbon原理及实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Java微信公众号模板消息推送功能实例代码

    Java微信公众号模板消息推送功能实例代码

    这篇文章主要介绍了Java微信公众号模板消息推送功能的相关资料,包括了公众号开发者平台的参数获取、微信发送接口的实际调用、消息发送的util类、示例模板以及接口调用的示例,需要的朋友可以参考下
    2025-05-05
  • SpringBoot开发存储服务器实现过程详解

    SpringBoot开发存储服务器实现过程详解

    这篇文章主要为大家介绍了SpringBoot开发存储服务器实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • IKAnalyzer使用不同版本中文分词的切词方式实现相同功能效果

    IKAnalyzer使用不同版本中文分词的切词方式实现相同功能效果

    今天小编就为大家分享一篇关于IKAnalyzer使用不同版本中文分词的切词方式实现相同功能效果,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Jenkins自动构建部署项目到远程服务器上的方法步骤

    Jenkins自动构建部署项目到远程服务器上的方法步骤

    这篇文章主要介绍了Jenkins自动构建部署项目到远程服务器上的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • SpringBoot实现自动配置的方式详解

    SpringBoot实现自动配置的方式详解

    Spring Boot 自动配置 是其核心特性之一,它通过智能化的默认配置减少了开发者的工作量,自动配置的原理基于条件化配置和 Spring 的 @Configuration 机制,本文给大家讲解了SpringBoot实现自动配置的过程,需要的朋友可以参考下
    2025-04-04

最新评论