gpt4 book ai didi

java - Spring Boot可缓存-缓存null值

转载 作者:行者123 更新时间:2023-12-04 00:22:21 27 4
gpt4 key购买 nike

我正在使用@Cacheable批注来缓存方法的结果。出于性能原因,我想同时缓存null和从方法返回的非null值。

但是这里的问题是Spring正在缓存非null值,但由于某种原因没有缓存null。

这是我的代码:

@Cacheable(
cacheManager = "promoCacheManager",
value = "promos:campaign",
key = "'promos:campaign:'.concat(#currencyId)"
)
public PromosDto getPromosByCurrency(Integer currencyId) {

...


我已经尝试了一切。连我定

unless = "#result != null || #result == null"

但这并没有帮助。
有任何指针吗?

最佳答案

检查您的缓存管理器设置。

例如:RedisCacheManager有一个重载的构造函数,您可以在其中指定cacheNullValues;默认情况下为false-尝试将其设置为true。

https://docs.spring.io/spring-data/redis/docs/current/api/org/springframework/data/redis/cache/RedisCacheManager.html#RedisCacheManager-org.springframework.data.redis.core.RedisOperations-java.util.Collection-boolean-

另外请记住:


注意启用cacheNullValues时,请确保RedisOperations使用的RedisSerializer能够序列化NullValue。

关于java - Spring Boot可缓存-缓存null值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45954889/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com