1.导入坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
配置文件配置上redis地址和cache的type属性为true
spring:
redis:
database: 1
host: 39.98.93.34
port: 6379
cache: #cache配置
type: redis
redis:
time-to-live: 60000 #缓存的时间
2.启动类加上注解
@EnableCaching #开启缓存注解
3. 在方法上加上
//在ceshicache空间创建一个以方法名为key的values
@Cacheable(value = {"ceshicache"},key = "#root.method.name")
4. 默认在redis存的是java序列化值可以改成通用的json格式
@EnableCaching #如果启动类加上这里就不用加了
@Configuration
public class CacheConfig {
@Bean
public RedisCacheConfiguration redisCacheConfiguration(){
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
config=config.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()));
config=config.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
return config;
}
}
5.以上还有一个问题就是没办法加载配置文件的配置
@EnableCaching
@EnableConfigurationProperties(CacheProperties.class) #CacheProperties类交给spring管理
@Configuration
public class CacheConfig {
@Bean
public RedisCacheConfiguration redisCacheConfiguration(CacheProperties cacheProperties){
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
config=config.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()));
config=config.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
//让配置生效
CacheProperties.Redis redis = cacheProperties.getRedis();
if(redis.getTimeToLive()!=null){
config=config.entryTtl(redis.getTimeToLive());
}
if(redis.getKeyPrefix()!=null){
config=config.prefixKeysWith(redis.getKeyPrefix());
}
if(redis.isCacheNullValues()){
config=config.disableCachingNullValues();
}
if(redis.isUseKeyPrefix()){
config=config.disableKeyPrefix();
}
return config;
}
以上是参照谷粒商城项目所给的配置