SpringBoot集成Redis分布式鎖

版本

  • SpringBoot: 2.4.8
  • redisson-spring-boot-starter: 3.15.6

pom.xml

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

application.yaml

spring:
  redis:
    host: 127.0.0.1
    port: 6379

注:配置文件中 redishostport 視實(shí)際情況而定。

RedissonConfig

@Configuration
public class RedissonConfig {

    @Value("${spring.redis.host}")
    public String host;

    @Value("${spring.redis.port}")
    public String port;

    @Bean
    public RedissonClient redissonClient() {
        Config config = new Config();
        config.useSingleServer().setAddress("redis://" + host + ":" + port);

        return Redisson.create(config);
    }
}

使用

@Autowired
private RedissonClient redissonClient;

public void test(String phone) {
    String key = "redis:phone:" + phone;

    RLock rLock = redissonClient.getLock(key);
    try {
        boolean result = rLock.tryLock(3, 10, TimeUnit.SECONDS);
        if (!result) {
            System.out.println("獲取分布式鎖失敗1");
        } else {
            System.out.println("獲取分布式鎖成功");
        }
    } catch (Exception e) {
        System.out.println("獲取分布式鎖失敗2");
    } finally {
        if(rLock.isLocked()) {
            if(rLock.isHeldByCurrentThread()) {
                rLock.unlock();
            }
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Spring Boot簡(jiǎn)介 Spring Boot的設(shè)計(jì)目的是用來(lái)簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)...
    皇天閱讀 537評(píng)論 0 2
  • SpringBoot基礎(chǔ) 學(xué)習(xí)目標(biāo): 能夠理解Spring的優(yōu)缺點(diǎn) 能夠理解SpringBoot的特點(diǎn) 能夠理解S...
    曉明兄閱讀 2,628評(píng)論 2 13
  • 前言 分布式鎖是控制分布式系統(tǒng)之間同步訪問(wèn)共享資源的一種方式。在分布式系統(tǒng)中,常常需要協(xié)調(diào)他們的動(dòng)作。如果不同的系...
    前程有光閱讀 1,092評(píng)論 0 6
  • 1:設(shè)計(jì)初衷 SpringBoot為我們開(kāi)發(fā)者提供了一種更快速、體驗(yàn)更好的開(kāi)發(fā)方式,我們可以開(kāi)箱即用,無(wú)需像寫Sp...
    金色888閱讀 694評(píng)論 0 0
  • 表情是什么,我認(rèn)為表情就是表現(xiàn)出來(lái)的情緒。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了,難過(guò)就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,400評(píng)論 2 7

友情鏈接更多精彩內(nèi)容