注解缓存报错:Cache 'redisCache' does not allow 'null' values

问题描述:

从错误信息可以看出,redis无法存值为空的键值对到reids中

java.lang.IllegalArgumentException: Cache 'redisCache' does not allow 'null' values. Avoid storing null via '@Cacheable(unless="#result == null")' or configure RedisCache to allow 'null' via RedisCacheConfiguration.

解决办法:

所以排查sql、类等有没有问题,还有可能是通过你的条件确实查出来的结果是为空的,这种情况reids是不允许存值为空的缓存。

Spring的Redis注解添加 `unless="#result == null",这样当结果为空时则不存入Redis;list时:unless="#result == null || #result.size() == 0"

@Cacheable(key = "#userId", unless = "#result == null ")

你可能感兴趣的:(java)