将Spring自带的RedisCache保存的值改为json格式
Posted lovoo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Spring自带的RedisCache保存的值改为json格式相关的知识,希望对你有一定的参考价值。
前言
为了方面在redis管理器察看保存的缓存数据,我们要把原来序列化的数据改为json格式。
在springboot项目中配置代码:
@EnableConfigurationProperties(CacheProperties.class)
@Configuration
@EnableCaching
public class MyCacheConfig {
// @Autowired
// public CacheProperties cacheProperties;
/**
* 配置文件的配置没有用上
*
* @return
*/
@Bean
public RedisCacheConfiguration redisCacheConfiguration(CacheProperties cacheProperties) {
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
// config = config.entryTtl();
config = config.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()));
config = config.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
CacheProperties.Redis redisProperties = cacheProperties.getRedis();
//将配置文件中所有的配置都生效
if (redisProperties.getTimeToLive() != null) {
config = config.entryTtl(redisProperties.getTimeToLive());
}
if (redisProperties.getKeyPrefix() != null) {
config = config.prefixKeysWith(redisProperties.getKeyPrefix());
}
if (!redisProperties.isCacheNullValues()) {
config = config.disableCachingNullValues();
}
if (!redisProperties.isUseKeyPrefix()) {
config = config.disableKeyPrefix();
}
return config;
}
}
配置application.yml
spring:
redis:
host: 192.168.16.149
port: 6379
cache:
type: redis
redis:
time-to-live: 360000
在要添加缓存的上面添加 @Cacheable
@Override
@Cacheable(value = {"category"}, key = "#root.methodName") //如果缓存中有,方法都不调用
public List<CategoryEntity> getOneLevelCategories() {
List<CategoryEntity> entities = baseMapper.selectList(new QueryWrapper<CategoryEntity>().eq("parent_cid", 0));
return entities;
}
结果如图:
以上是关于将Spring自带的RedisCache保存的值改为json格式的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot系列:Spring Boot集成Spring Cache,使用RedisCache
span是没有value标签的,要向获得标签内部的值改怎么办。
Spring Caching 的 AbstractCacheInvoker doPut() 方法错误调用 RedisCache put() 方法