Spring Data Redis(简称SDR) 是spring 操作redis 的一个框架, 可以使用jedis 驱动或Lettuce 驱动, SDR 2.x 系列默认使用Lettuce 驱动. SpringBoot 整合Spring data redis 方式比较简单, 需要注意的是,redis 有三种集群: 单实例, 高可用集群, 分片集群。 SDR 对于不同的方式配置略有不同.
1. 引入依赖
- 笔者的springboot版本号为 2.1.4.RELEASE
- 除了引入spring-boot-starter-data-redis 之外, 还需要引入apache 的commons-pool2包, 因为redis连接配置了连接池
<!-- SDR 核心包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- redis 连接池依赖包 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.4.2</version>
</dependency>
<!-- 使用SDR的json 序列化方式GenericJackson2JsonRedisSerializer 需要依赖这两个包 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.2</version>
</dependency>
2. 集成配置
2.1 单节点配置
spring:
redis:
host: 127.0.0.1
port: 6379
database: 0
password: 123456
lettuce:
pool:
max-active: 10
max-idle: 5
min-idle: 5
max-wait: 30000ms
2.2 sentinel高可用配置
需要注意的时 sentinel.master 为sentinel中配置的名称,这个名称不能错.
spring:
redis:
database: 0
password: 123456
lettuce:
pool:
max-active: 10
max-idle: 5
min-idle: 5
max-wait: 30000ms
sentinel:
master: redis.localhost
nodes:
- 127.0.0.1:26481
- 127.0.0.1:26482
- 127.0.0.1:26483
2.3 cluster 集群配置
spring:
redis:
database: 0
password: 123456
lettuce:
pool:
max-active: 10
max-idle: 5
min-idle: 5
max-wait: 30000ms
cluster:
nodes:
- 127.0.0.1:7481
- 127.0.0.1:7482
- 127.0.0.1:7483
- 127.0.0.1:7484
- 127.0.0.1:7485
- 127.0.0.1:7486
- 127.0.0.1:7487
- 127.0.0.1:7488
- 127.0.0.1:7489
3. 测试用例
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestStringTmp {
@Autowired
private StringRedisTemplate redisTemplate;
@Test
public void test_save() throws InterruptedException {
ValueOperations<String, String> ops = redisTemplate.opsForValue();
ops.set("name","zongf");
Thread.sleep(Integer.MAX_VALUE);
}
}