欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springboot中如何使用Redisson實現(xiàn)分布式鎖淺析

 更新時間:2021年10月11日 10:27:45   作者:追風(fēng)人聊Java  
redisson是redis的java客戶端程序,國內(nèi)外很多公司都有在用,下面這篇文章主要給大家介紹了關(guān)于Springboot中如何使用Redisson實現(xiàn)分布式鎖的相關(guān)資料,需要的朋友可以參考下

前言

在分布式場景下為了保證數(shù)據(jù)最終一致性。在單進程的系統(tǒng)中,存在多個線程可以同時改變某個變量(可變共享變量)時,就需要對變量或代碼塊做同步(lock—synchronized),使其在修改這種變量時能夠線性執(zhí)行消除并發(fā)修改變量。但分布式系統(tǒng)是多部署、多進程的,開發(fā)語言提供的并發(fā)處理API在此場景下就無能為力了。

1. 概述

老話說的好:便宜沒好貨,有價值的商品,即使再貴,也有人會買。

言歸正傳,今天繼續(xù)討論有關(guān)“鎖”的話題,synchronized 和 ReentrantLock 大家應(yīng)該都非常熟悉了,但這兩個鎖,作用域僅限制于單個Tomcat,如果使用了 Tomcat 集群,這兩個鎖就不管用了。

此時我們就要引入分布式鎖了,分布式鎖的實現(xiàn)方式有很多,可以使用 Mysql 數(shù)據(jù)庫實現(xiàn),也可以使用 Zookeeper 實現(xiàn),當(dāng)然比較常用的還是使用 Redis 實現(xiàn)。

今天我們就來聊一下基于 Redis 的實現(xiàn)方式 —— Redisson。

Redisson是架設(shè)在redis基礎(chǔ)上的一個Java駐內(nèi)存數(shù)據(jù)網(wǎng)格(In-Memory Data Grid)。充分的利用了Redis鍵值數(shù)據(jù)庫提供的一系列優(yōu)勢,基于Java實用工具包中常用接口,為使用者提供了一系列具有分布式特性的常用工具類。使得原本作為協(xié)調(diào)單機多線程并發(fā)程序的工具包獲得了協(xié)調(diào)分布式多機多線程并發(fā)系統(tǒng)的能力,大大降低了設(shè)計和研發(fā)大規(guī)模分布式系統(tǒng)的難度。同時結(jié)合各富特色的分布式服務(wù),更進一步簡化了分布式環(huán)境中程序相互之間的協(xié)作。

2. Redisson 在 Springboot 中的使用

2.1 引入依賴

<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-boot-starter</artifactId>
    <version>3.16.3</version>
</dependency>

2.2 在 Springboot 配置中配置Redis

支持 Redis單體、Redis哨兵模式 和 Redis集群模式

spring:
  redis:
    host: 192.168.1.12
    port: 6379
    password: zhuifengren

2.3 Demo代碼

@Autowired
    private RedissonClient redissonClient;

    public void lock() {

        RLock rLock = redissonClient.getLock("myLock");
        log.info("進入了方法");

        try {
            // 加鎖,30秒后自動釋放鎖
            rLock.lock(30, TimeUnit.SECONDS);
            log.info("獲得了鎖");

            Thread.sleep(15000);

        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
        } finally {
            // 釋放鎖
            rLock.unlock();
            log.info("釋放了鎖");
        }
    }

3. 綜述

到此這篇關(guān)于Springboot中如何使用Redisson實現(xiàn)分布式鎖淺析的文章就介紹到這了,更多相關(guān)Springboot用Redisson實現(xiàn)分布式鎖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring如何將bean添加到容器中

    Spring如何將bean添加到容器中

    這篇文章主要介紹了Spring如何將bean添加到容器中,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • java暴力匹配及KMP算法解決字符串匹配問題示例詳解

    java暴力匹配及KMP算法解決字符串匹配問題示例詳解

    這篇文章主要為大家介紹了java算法中暴力匹配算法及KMP算法解決字符串匹配的問題示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • SpringCloud整合分布式服務(wù)跟蹤zipkin的實現(xiàn)

    SpringCloud整合分布式服務(wù)跟蹤zipkin的實現(xiàn)

    這篇文章主要介紹了SpringCloud整合分布式服務(wù)跟蹤zipkin的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • SpringBoot實現(xiàn)動態(tài)增刪啟停定時任務(wù)的方式

    SpringBoot實現(xiàn)動態(tài)增刪啟停定時任務(wù)的方式

    在spring?boot中,可以通過@EnableScheduling注解和@Scheduled注解實現(xiàn)定時任務(wù),也可以通過SchedulingConfigurer接口來實現(xiàn)定時任務(wù),但是這兩種方式不能動態(tài)添加、刪除、啟動、停止任務(wù),本文給大家介紹SpringBoot實現(xiàn)動態(tài)增刪啟停定時任務(wù)的方式,感興趣的朋友一起看看吧
    2024-03-03
  • Spring AOP在web應(yīng)用中的使用方法實例

    Spring AOP在web應(yīng)用中的使用方法實例

    這篇文章主要給大家介紹了關(guān)于Spring AOP在web應(yīng)用中的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring AOP具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • java基礎(chǔ)之字符串編碼知識點總結(jié)

    java基礎(chǔ)之字符串編碼知識點總結(jié)

    這篇文章主要介紹了java基礎(chǔ)之字符串編碼總結(jié),文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,要的朋友可以參考下
    2021-04-04
  • springcloud-gateway整合jwt+jcasbin實現(xiàn)權(quán)限控制的詳細(xì)過程

    springcloud-gateway整合jwt+jcasbin實現(xiàn)權(quán)限控制的詳細(xì)過程

    這篇文章主要介紹了springcloud-gateway整合jwt+jcasbin實現(xiàn)權(quán)限控制,基于springboot+springcloud+nacos的簡單分布式項目,項目交互采用openFeign框架,單獨提取出來成為一個獨立的model,需要的朋友可以參考下
    2023-02-02
  • 2020最新 idea下載、安裝與創(chuàng)建項目測試的教程圖解

    2020最新 idea下載、安裝與創(chuàng)建項目測試的教程圖解

    這篇文章主要介紹了2020最新 idea下載、安裝與創(chuàng)建項目測試的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 簡單介紹java中equals以及==的用法

    簡單介紹java中equals以及==的用法

    這篇文章主要介紹了簡單介紹java中equals以及==的用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • java打印出菱形圖案實例詳解

    java打印出菱形圖案實例詳解

    在本篇文章里小編給大家分享的是關(guān)于java打印出菱形圖案實例詳解,需要的朋友們可以學(xué)習(xí)下。
    2020-02-02

最新評論