使用Redis的客户端spring cache的时候,会发现生成key中会多出一个冒号,而且有一个空节点的存在:
查看源码可知,默认的生成key的策略就是通过两个冒号来拼接:
解决方案就是覆盖其默认的CacheKeyPrefix,这是一个函数接口。覆盖如下:
RedisCacheConfiguration config1 = RedisCacheConfiguration.defaultCacheConfig(); // 生成一个默认配置,通过config对象即可对缓存进行自定义配置
config1 = config1
.entryTtl(Duration.ofMinutes(120)) // 设置缓存的默认过期时间,也是使用Duration设置
.disableCachingNullValues() // 不缓存空值
.computePrefixWith(name -> name + ":")//覆盖默认的构造key,否则会多出一个冒号
.serializeValuesWith(SerializationPair.fromSerializer(jackson2JsonRedisSerializer));