SpringBoot集成redisson全過程
SpringBoot集成redisson
1.首先需要已經(jīng)集成redis的環(huán)境
如何集成redis這里不做描述。
2.引入redisson的依賴
(這里使用的是3.14.1版本)
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.14.1</version>
</dependency>3.添加redisson的配置類
package com.salong.framework.config;
import lombok.Data;
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;
@Data
@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();
String address = new StringBuilder("redis://").append(host).append(":").append(port).toString();
config.useSingleServer().setAddress(address);
if (null != password && !"".equals(password.trim())) {
config.useSingleServer().setPassword(password);
}
return Redisson.create(config);
}
}其中,我這里使用的是單機的redis,如果是其他方式(主從,哨兵,集群)的話,按照下面的進行修改配置即可。

4.redisson的常見使用
4.1 在類中注入redisson
@Autowired
private RedissonClient redissonClient;4.2 獲取鎖對象和使用。
public void test(){
//競爭的鎖對象名稱
RLock lock = redissonClient.getLock("lockName");
//tryLock可以不加參數(shù),不會拋異常,僅嘗試獲取一次鎖對象
//tryLock(5,10,TimeUnit.SECONDS)意思為等待鎖對象5秒鐘,獲取到對象10秒鐘后釋放鎖對象,調(diào)用此方法會拋出異常
if (lock.tryLock()){
try {
//處理業(yè)務(wù)邏輯代碼......
}finally {
lock.unlock();
}
}
//lock.isLocked()誤區(qū):此方法不是判斷當(dāng)前線程是否被鎖定,而是判斷該鎖對象當(dāng)前是否被任意線程所持有。
// 所以不能使用if(lock.isLocked()){lock.unlock();}的寫法來釋放鎖。
boolean locked = lock.isLocked();
//當(dāng)前線程釋放鎖對象
lock.unlock();
}總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mybatis多對多關(guān)聯(lián)實戰(zhàn)教程(推薦)
下面小編就為大家?guī)硪黄猰ybatis多對多關(guān)聯(lián)實戰(zhàn)教程(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
mybatis自動生成時如何設(shè)置不生成Example類詳解
這篇文章主要給大家介紹了關(guān)于mybatis自動生成時如何設(shè)置不生成Example類的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-05-05
Spring Cloud 負載均衡器 Ribbon原理及實現(xiàn)
這篇文章主要介紹了Spring Cloud 負載均衡器 Ribbon原理及實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
SpringBoot開發(fā)存儲服務(wù)器實現(xiàn)過程詳解
這篇文章主要為大家介紹了SpringBoot開發(fā)存儲服務(wù)器實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12
IKAnalyzer使用不同版本中文分詞的切詞方式實現(xiàn)相同功能效果
今天小編就為大家分享一篇關(guān)于IKAnalyzer使用不同版本中文分詞的切詞方式實現(xiàn)相同功能效果,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
Jenkins自動構(gòu)建部署項目到遠程服務(wù)器上的方法步驟
這篇文章主要介紹了Jenkins自動構(gòu)建部署項目到遠程服務(wù)器上的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

