springboot cache
hashmapまたはredisなどであってもよく、springbootはcacheを管理するための2つのインタフェースを提供し、
CacheManager Cache,CacheManager
はCacheの クラスを するための2つの を するだけである.,Cache
は にcacheに する である.springbootでは、 のようなcacheの がいくつか されています.
Generic
JCache (JSR-107) (EhCache 3, Hazelcast, Infinispan, etc)
EhCache 2.x
Hazelcast
Infinispan
Couchbase
Redis
Caffeine
Guava (deprecated)
Simple
springboot cache , redis RedisCacheConfiguration, , , , SimpleCacheConfiguration, , 。 redis , :
org.springframework.boot
spring-boot-starter-data-redis
1.5.9.RELEASE
RedisCacheConfiguration jar , cacheManger RedisCacheManager , spring cacheManger, , @ConditionalOnMissingBean(CacheManager.class)。 , application.properties redis , :
# Redis ( 0)
spring.redis.database=0
# Redis
spring.redis.host=127.0.0.1
# Redis
spring.redis.port=6379
# Redis ( )
spring.redis.password=
# ( )
spring.redis.pool.max-active=8
# ( )
spring.redis.pool.max-wait=-1
#
spring.redis.pool.max-idle=8
#
spring.redis.pool.min-idle=0
# ( )
spring.redis.timeout=0
redis cache , , redis redis \xab\xa0 , @cacheput @cahceable key value, redis ,springboot RedisTemplate keySerializer valueSerializer JdkSerializationRedisSerializer, object byte, @cahceput key int , int , byte redis, \xab\xa0 , object 。 , RedisTemplatebean, keySerializer valueSerializer, :
@Configuration
@EnableCaching
public class RedisConfig {
@Bean
public CacheManager cacheManager(RedisTemplate, ?> redisTemplate) {
RedisCacheManager manager = new RedisCacheManager(redisTemplate);
manager.setDefaultExpiration(20);//
return manager;
}
@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory factory) {
StringRedisTemplate template = new StringRedisTemplate(factory);
Jackson2JsonRedisSerializer