SpringBoot整合Redis
SpingBoot
对于Redis
提供了开箱即用的starter
。而且抽象出了一层更加高级的API,底层Redis的客户端对用户来说是透明的。可以是Jedis
,也可以是Lettuce
导入依赖
使用的是
Lettuce
作为Redis
的客户端
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
配置
详细的配置类
org.springframework.boot.autoconfigure.data.redis.RedisProperties
spring:
redis:
database: 0
host: localhost
port: 6379
password:
# 连接超时时间(毫秒)
timeout: 2000
lettuce:
pool:
# 连接池最大连接数(使用负值表示没有限制)
max-active: 8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1
# 连接池中的最大空闲连接
max-idle: 8
# 连接池中的最小空闲连接
min-idle: 0
Spring提供的客户端
RedisTemplate<K, V>
顶层的一个接口,泛型。K 表示key的数据类型, V 表示 value的数据类型。
StringRedisTemplate
Sping提供的RedisTemplate 的实现,K V 都是字符串,它针对redis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口。一般直接通过IOC注入该类实例使用。
@Autowired
private StringRedisTemplate stringRedisTemplate;
ListOperations stringRedisTemplate.opsForList();// 返回操作list的operation
SetOperations stringRedisTemplate.opsForSet();// 返回操作set的operation
ValueOperations stringRedisTemplate.opsForValue();// 返回操作普通k/v的operation
ZSetOperations stringRedisTemplate.opsForZSet();// 返回操作zset的operation
HashOperations stringRedisTemplate.opsForHash();// 返回操作hash的operation
简单的CRUD
@Autowired
private StringRedisTemplate stringRedisTemplate;
public void foo() {
this.stringRedisTemplate.opsForValue().set("name", "SpringBoot");
this.stringRedisTemplate.opsForValue().get("name");
this.stringRedisTemplate.delete("name");
}