可參考:www.it610.com/article/152985037452...
1、Redisson簡介
Redis 是最流行的 NoSQL 資料庫解決方案之一,而 Java 是世界上最流行(注意,沒有說“最好”)的程式語言之一。雖然兩者看起來很自然地在一起“工作”,但是要知道,Redis 其實並沒有對 Java 提供原生支援。
相反,作為 Java 開發人員,我們若想在程式中整合 Redis,必須使用 Redis 的第三方庫。而 Redisson 就是用於在 Java 程式中操作 Redis 的庫,它使得我們可以在程式中輕鬆地使用 Redis。Redisson 在 java.util 中常用介面的基礎上,為我們提供了一系列具有分散式特性的工具類。
Redisson底層採用的是Netty 框架。支援Redis 2.8以上版本,支援Java1.6+以上版本。
2、Redisson實現分散式鎖的步驟
2.1.引入依賴
SpringBoot整合Redisson有個比較好用的starter包就是redisson-spring-boot-starter,這也是官方比較推薦的配置方式
引入redisson依賴
只需引入redisson-spring-boot-starter就可以了,不過這裡需要注意springboot與redisson的版本,因為官方推薦redisson版本與springboot版本配合使用。版本不匹配會導致這種問題。
將 Redisson 與 Spring Boot 庫整合。取決於Spring Data Redis模組,支援 Spring Boot 1.3.x - 2.4.x
這句話是官方說的,不過現在的2.5.x也是支援的,只需要注意springboot最低版本不要低於1.3.x即可。
redisson-spring-data與Spring Boot version的版本對應關係
redisson-spring-data module name | Spring Boot version |
---|---|
redisson-spring-data-16 | 1.3.x |
redisson-spring-data-17 | 1.4.x |
redisson-spring-data-18 | 1.5.x |
redisson-spring-data-20 | 2.0.x |
redisson-spring-data-21 | 2.1.x |
redisson-spring-data-22 | 2.2.x |
redisson-spring-data-23 | 2.3.x |
redisson-spring-data-24 | 2.4.x |
maven依賴
org.redisson
redisson-spring-boot-starter
3.17.1
點選redisson-spring-boot-starter進去
public class IndexController {
@Autowired(required = false)
private RedissonClient redissonClient;
@GetMapping("/index")
public String index() {
RLock tokenLock = redissonClient.getLock("tokenLock");
RBucket<String> name = redissonClient.getBucket("name");
name.set("zhangxiao");
tokenLock.lock();
try {
System.out.println("獲取鎖");
Thread.sleep(20000);
System.out.println("加鎖成功,程式碼執行緒:" + Thread.currentThread().getName());
} catch (Exception ex) {
System.out.println("異常報錯");
} finally {
tokenLock.unlock();
}
return "redisson is ok";
}
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結