SpringBoot使用Redisson 实现分布式锁
Java 客户端,数据网格
实现了很多 Java 里支持的接口和数据结构
Redisson 是一个 java 操作 Redis 的客户端,提供了大量的分布式数据集来简化对 Redis 的操作和使用,可以让开发者像使用本地集合一样使用 Redis,完全感知不到 Redis 的存在。
2 种引入方式
- spring boot starter 引入(不推荐,版本迭代太快,容易冲突)https://github.com/redisson/redisson/tree/master/redisson-spring-boot-starter
- 直接引入:https://github.com/redisson/redisson#quick-start
直接引入
导入依赖
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.17.6</version>
</dependency>
配置类
package com.bo.partner.config;
import lombok.Data;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author: bo
* @date: 2022/9/14
* @description:
*/
@Configuration
@ConfigurationProperties(prefix = "spring.redis")
@Data
public class RedissonConfig {
private String host;
private String port;
@Bean
public RedissonClient redisClient() {
// 1.创建配置
Config config = new Config();
String redisAddress = String.format("redis://%s:%s",host,port);
config.useSingleServer().setAddress(redisAddress).setDatabase(3);
// 2.创建实例
RedissonClient redisson = Redisson.create(config);
return redisson;
}
}
@ConfigurationProperties(prefix = "spring.redis")
读取了yml的配置
测试一下
@SpringBootTest
public class RedissonTest {
@Resource
private RedissonClient redissonClient;
@Test
void set() {
//list
List<String> list = new ArrayList<>();
list.add("aa");
list.get(0);
/*list.remove(0);*/
System.out.println("list"+list.get(0));
RList<Object> rList = redissonClient.getList("test-list");
rList.add("bb");
rList.get(0);
/*rList.remove(0);*/
System.out.println("rlist"+rList.get(0));
}
}
为什么redisson和本地的list一模一样的,点进去看
继承了List接口
Q.E.D.