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...