可以自定义一个cacheManager, 如下图的RedisCacheManager
该构造方法需要3个参数, 分别是
cacheWriter : 需要一个缓存写入器
defaultCacheConfiguration: 默认的失效配置, 理解为默认的配置及失效时间
initialCacheConfigurations: 可以自定义缓存配置
我的redis 缓存相关 具体配置文件, 如下, 可直接拷贝使用
@Bean
public CacheManager cacheManager(RedisConnectionFactory factory) {
return new RedisCacheManager(
RedisCacheWriter.lockingRedisCacheWriter(factory),
this.getRedisCacheConfigurationWithTtl(1),
this.getRedisCacheConfigurationMap()
);
}
/**
-
默认失效时间配置
-
@param days 未设置失效事件的key 默认days失效
*/
private RedisCacheConfiguration getRedisCacheConfigurationWithTtl(Integer days) {
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
return RedisCacheConfiguration.defaultCacheConfig().serializeValuesWith(
RedisSerializationContext
.SerializationPair
.fromSerializer(jackson2JsonRedisSerializer)).entryTtl(Duration.ofDays(days));
}
public static final String REGION_LIST_BY_CODE_CACHE_KEY = “region:list”;
public static final String REGION_NAME_BY_CODE_CACHE_KEY = “region:name”;
/**
- 已知缓存名称的映射以及用于这些缓存的配置
*/
private Map<String, RedisCacheConfiguration> getRedisCacheConfigurationMap() {
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
惊喜
最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)
和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)
[外链图片转存中…(img-PNdKgeWP-1711083521639)]
[外链图片转存中…(img-LqS5JX9j-1711083521639)]