# SpringBoot集成Redis
**Repository Path**: jianml/redis
## Basic Information
- **Project Name**: SpringBoot集成Redis
- **Description**: SpringBoot集成Redis
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 2
- **Created**: 2020-01-07
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# SpringBoot集成Redis
## 介绍
Springboot集成redis主要就是使用RedisTemplate类来进行各种操作。可能很多人并没有注意,在Springboot2以后,底层访问redis已经不再是jedis了,而是lettuce。Spring Boot 2.0后推荐使用Lettuce来代替Jedis,Lettuce基于Netty异步,拥有更好的性能
## 依赖引入
除了要引入`spring-boot-starter-data-redis`依赖,要集成Lettuce,我们还需引入`commons-pool2`Lettuce连接池
```xml
org.springframework.boot
spring-boot-starter-data-redis
org.apache.commons
commons-pool2
```
## 配置文件
配置文件application.yml里配置改为
```yaml
spring:
redis:
database: 0 # Redis数据库索引(默认为0)
host: 127.0.0.1 # Redis服务器地址
port: 6379 # Redis服务器连接端口
password: 123456 # Redis服务器连接密码(默认为空)
lettuce:
pool:
min-idle: 8 # 连接池中的最小空闲连接
max-idle: 500 # 连接池中的最大空闲连接
max-active: 2000 # 连接池最大连接数(使用负值表示没有限制)
max-wait: 10000 # 连接池最大阻塞等待时间(使用负值表示没有限制)
timeout: 5000 #连接超时时间
```
## 具体配置类
RedisTemplate默认只能支持RedisTemplate形式的,也就是key-value只能是字符串,不能是其他对象。如果你想存入其他类型的数据,就需要自己定义一个RedisTemplate对象,返回一个自己想要的RedisTemplate对象,自己定义序列化方式。
在config路径下新建`LettuceRedisConfig`配置类
```java
@Configuration
public class LettuceRedisConfig {
@Bean
@ConditionalOnClass(RedisOperations.class)
public RedisTemplate redisTemplate(RedisConnectionFactory factory) {
RedisTemplate template = new RedisTemplate<>();
template.setConnectionFactory(factory);
Jackson2JsonRedisSerializer