redisson分布式鎖的用法大全

2022-09-28 06:48:07 字數 947 閱讀 7007

redisson是redis官方推薦的j**a版的redis客戶端。它提供的功能非常多,此處我們只用它的分布式鎖功能。

以springboot整合redisson專案為例

新增springboot m**en依賴

org.redisson

redisson-spring-boot-starter

3.15.1

配置 redisson就不細講了,咱們這邊用預設配置,什麼都不用配

編寫測試**

package com.miyou;

import org.junit.jupiter.api.test;

import org.redisson.api.redissonclient;

import org.springf程式設計客棧ramework.beans.factory.annotation.autowired;

import j**a.util.concurrent.程式設計客棧locks.lock;

public class defaulttes程式設計客棧t extends userrightsapplicationtests ).start();

thread.sleep(20000);

system.out.println("主線程釋放鎖");

lock.unlock();

thread.sleep(1200000);

}}預設情況下redisson分布式鎖的超時時間為30秒,在鎖即將超時的情況下redisson會檢查拿到鎖的執行緒id是否存活,如果執行緒存活redisson會對超時時間進行續期

redissonclient.getlock方法返回的介面型別為

org.redisson.api.rlock

檢視原始碼,可以看到rlock繼承了j**a.util.concurrent.locks.lock介面

可以無縫對接使用lock的業務場景,實現設計和傳遞

redisson分布式鎖

介面做冪等的方式很多,我們應用使用分布式鎖 插入明細來做冪等。但是發現冪等失效了,最終確認是業務執行尚未結束,還沒有插入明細。但是客戶端第二個訪問就來到了,此時呢,分布式鎖的時間也失效了。也就是兩個問題 1是業務執行為什麼很慢,這個就有很多種情況暫不考慮。考慮第二種情況,能不能加長分布式鎖的時間。由...

分布式鎖 redisson

1 匯入依賴 org.redissongroupid redissonartifactid 3.11.1version dependency 2 配置redisson configuration public class redissonconfig spring name cjs redisson...

redis分布式鎖redisson

原文 關於redisson的源 請參考官網 redisson官方講解參考 wiki e7 9b ae e5 bd 95 首先需要引入redisson org.springframework.bootgroupid spring boot starter data redisartifactid de...