最新消息: 新版网站上线了!!!

SpringBoot如何整合Redis

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注入该类实例使用

@Autowiredprivate StringRedisTemplate stringRedisTemplate;

ListOperations stringRedisTemplate.opsForList();// 返回操作list的operationSetOperations stringRedisTemplate.opsForSet();// 返回操作set的operationValueOperations stringRedisTemplate.opsForValue();// 返回操作普通k/v的operationZSetOperations stringRedisTemplate.opsForZSet();// 返回操作zset的operationHashOperations stringRedisTemplate.opsForHash();// 返回操作hash的operation

简单的CRUD

@Autowiredprivate StringRedisTemplate stringRedisTemplate;public void foo() {	this.stringRedisTemplate.opsForValue().set("name", "SpringBoot");	this.stringRedisTemplate.opsForValue().get("name");	this.stringRedisTemplate.delete("name");
}


转载请注明:谷谷点程序 » SpringBoot如何整合Redis