springboot整合redisson分布式锁

一、通过maven引入redisson的jar包

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

二、在yaml文件中引入redis的相关配置(redis单节点可以读取原有redis配置拼装,如果是主从需另外独立配置,相关属性可以参考org.redisson.config.Config.masterSlaveServersConfig)

spring:
  redis:
    host: 127.0.0.1
    port: 6379
    password: 111111

三、添加springboot配置

package com.aoxun.config;

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;

/**
 * redisson配置
 * 目前使用的是腾讯云的单节点redis,所以暂时配置单服务
 *
 *
 */
@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();
        config.useSingleServer().setAddress("redis://" + host + ":" + port).setPassword(password);
        //添加主从配置
//        config.useMasterSlaveServers().setMasterAddress("").setPassword("").addSlaveAddress(new String[]{"",""});

        return Redisson.create(config);
    }

}

四、在需要使用的地方注入RedissonClient即可

package com.aoxun.modular.menjin.service.impl;

import java.util.concurrent.TimeUnit;

import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class TestRedissonLock{

    @Autowired
    private RedissonClient redissonClient;

    public void cameraCallback() {

        RLock rlock = redissonClient.getLock("redisson:lock:personId" + 123);

     //设置锁超时时间,防止异常造成死锁
        rlock.lock(20, TimeUnit.SECONDS);

        try{
            //执行业务逻辑
            Thread.sleep(10000);
            System.out.println(123);

        } catch(Exception e){

        }finally{
            rlock.unlock();
        }

    }

}

到此利用redisson实现分布式锁简单样例已经结束

原文地址:https://www.cnblogs.com/begin2016/p/8965043.html

时间: 2024-11-04 01:13:41

springboot整合redisson分布式锁的相关文章

SpringBoot集成redisson分布式锁

官方文档:https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95 1.引用redisson的pom <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.5.0</version> </dependency> 2.定义Lo

[转帖]SpringBoot集成redisson分布式锁

https://www.cnblogs.com/yangzhilong/p/7605807.html 前几天同事刚让增加上这一块东西. 百度查一下 啥意思.. 学习一下. 官方文档:https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95 20180226更新:增加tryLock方法,建议后面去掉DistributedLocker接口和其实现类,直接在RedissLockUtil中注入RedissonClient实现类(简单但会丢失

SpringBoot实战实现分布式锁一之重现多线程高并发场景

实战前言:上篇博文我总体介绍了我这套视频课程:"SpringBoot实战实现分布式锁" 总体涉及的内容,从本篇文章开始,我将开始介绍其中涉及到的相关知识要点,感兴趣的小伙伴可以关注关注学习学习!!工欲善其事,必先利其器,介绍分布式锁使用的前因后果之前,得先想办法说清楚为啥需要分布式锁以及如何才需要将分布式锁搬上用场!!其中,该课程的学习链接:http://edu.51cto.com/course/15684.html感兴趣的童鞋可以前往观看学习!!! 实战概要:故而此文将介绍一下分布式

springboot+redis实现分布式锁

参考 SpringBoot实现Redis分布式锁 https://www.jianshu.com/p/750ac97eb29e 实现原理 加锁解锁 执行逻辑之前,加锁 执行逻辑之后,删除锁 加锁和删除锁必须是同一个对象的行为. 获取锁删除锁 使用setnx,保证只有一个对象可以设置锁成功,只有一个对象可以拿到锁. (删除锁的时候,必须保证是自己创建的锁,需要验证value. 上面参考文章中,每次设置加锁的时候,设置token,删除锁的时候,对比token) 设置过期时间 设置锁的过期时间,为什么

Redisson 分布式锁超简封装

Redisson是一个在Redis的基础上实现的Java驻内存数据网格.它几乎提供了Redis所有工具,不仅封装Redis底层数据结构,而且还提供了很多Java类型映射.Redisson支持redis单实例.redis哨兵.redis cluster.redis master-slave等各种部署架构.Redisson除了普通分布式锁还支持 联锁(MultiLock),读写锁(ReadWriteLock),公平锁(Fair Lock),红锁(RedLock),信号量(Semaphore),可过期

重磅发布-SpringBoot实战实现分布式锁视频教程

概要介绍:历经一个月的时间,我录制的分布式锁实战之SpringBoot实战实现系列完整视频教程终于出世了!在本课程中,我分享介绍了分布式锁出现的背景.实现方式以及将其应用到实际的业务场景中,包括"重复提交"."CRM系统销售人员抢单",并采用当前相当流行的微服务SpringBoot来搭建项目实战实现分布式锁. 课程学习:目前博主已将分布式锁实现以及实际业务场景实战的要点整理成课程,感兴趣的童鞋可以前往学习:http://edu.51cto.com/course/15

SpringBoot集成Redis分布式锁以及Redis缓存

https://blog.csdn.net/qq_26525215/article/details/79182687 集成Redis 首先在pom.xml中加入需要的redis依赖和缓存依赖 <!-- 引入redis依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifa

Java使用Redisson分布式锁实现原理

本篇文章摘自:https://www.jb51.net/article/149353.htm 由于时间有限,暂未验证 仅先做记录.有大家注意下哈(会尽快抽时间进行验证) 1. 基本用法 添加依赖 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.8.2</version> </depend

springboot 整合redisson

整合代码已经过测试 1.pom 1 <!-- redisson --> 2 <dependency> 3 <groupId>org.redisson</groupId> 4 <artifactId>redisson</artifactId> 5 <version>3.5.7</version> 6 </dependency> 2.properties # redis spring.redis.hos