redis系列三-springboot如何使用redis做缓存及缓存注解的用法总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

redis系列三-springboot如何使用redis做缓存及缓存注解的

用法总结

1. 概述

本文介绍spring boot 如何使用Redis做缓存,如何对redis 缓存进行定制化配置(如key的有效期)以及spring boot 如何初始化redis做缓存。使用具体的代码介绍了@Cacheable,@CacheEvict,@CachePut,@CacheConfig等注解及其属性的用法。

2. spring boot集成redis

2.1. application.properties

配置application.properties,包含如下信息:

指定缓存的类型

配置redis的服务器信息

请不要配置spring.cache.cache-names值,原因后面再说

## 缓存

# spring.cache.cache-names=book1,book2

spring.cache.type=REDIS

# REDIS (RedisProperties)

spring.redis.database=0

spring.redis.host=192.168.188.7

spring.redis.password=

spring.redis.port=6379

spring.redis.pool.max-idle=8

spring.redis.pool.min-idle=0

spring.redis.pool.max-active=100

spring.redis.pool.max-wait=-1123456789101112131234567891 0111213

2.2. 配置启动类

@EnableCaching: 启动缓存

重新配置RedisCacheManager,使用新的配置的值

@SpringBootApplication

@EnableCaching // 启动缓存

public class CacheApplication {

private static final Logger log =

LoggerFactory.getLogger(CacheApplication.class);

public static void main(String[] args) {

("Start CacheApplication.. ");

SpringApplication.run(CacheApplication.class, args);

}

/**

* 重新配置RedisCacheManager

* @param rd

*/

@Autowired

public void configRedisCacheManger(RedisCacheManager rd){

rd.setDefaultExpiration(100L);

}

}123456789101112131415161718192012345678910111213141 51617181920

经过以上配置后,redis缓存管理对象已经生成。下面简单介绍spring boot如何初始化redis缓存。

2.3. spring boot 如何初始化redis做缓存

缓存管理接口org.springframework.cache.CacheManager,spring boot就是通过此类实现缓存的管理。redis对应此接口的实现类是

org.springframework.data.redis.cache.RedisCacheManager。下

面介绍此类如何生成。

首先我们配置application.properties的spring.redis.* 属性后@EnableCaching后,spring会执行RedisAutoConfiguration,初始化RedisTemplate和StringRedisTemplate

@Configuration

@ConditionalOnClass({ JedisConnection.class, RedisOperations.class, Jedis.class })

@EnableConfigurationProperties(RedisProperties.class)

public class RedisAutoConfiguration {

/**

* Standard Redis configuration.

*/

@Configuration

protected static class RedisConfiguration {

….

@Bean

@ConditionalOnMissingBean(name = "redisTemplate")

public RedisTemplate redisTemplate(

RedisConnectionFactory redisConnectionFactory)

throws UnknownHostException {

RedisTemplate template = new RedisTemplate();

template.setConnectionFactory(redisConnectionFactory);

return template;

}

@Bean

@ConditionalOnMissingBean(StringRedisTemplate.class) public StringRedisTemplate stringRedisTemplate(

RedisConnectionFactory redisConnectionFactory)

throws UnknownHostException {

StringRedisTemplate template = new StringRedisTemplate();

template.setConnectionFactory(redisConnectionFactory);

return template;

}

}

} 1234567891011121314151617181920212223242526272829303 1323334123456789101112131415161718192021222324252627 28293031323334

相关文档
最新文档