Spring @Cacheable 注解访问 Redis 报错:Null key returned for cache operation
这个错误通常是由于 Spring 缓存注解 @Cacheable 返回了 null 值引起的。当使用 @Cacheable 注解时,Spring 会首先检查缓存中是否存在对应的数据,如果存在则直接返回缓存数据,否则执行方法体并将返回值存入缓存。
如果方法返回了 null 值,Spring 会将其作为一个缓存键值对存入缓存中,但是 Redis 不支持将 null 值作为键存储。因此,当方法返回 null 值时,就会抛出 'Null key returned for cache operation' 异常。
要解决这个问题,你可以在方法体中通过判断返回值是否为 null 来避免将 null 值存入缓存中。例如:
@Cacheable(value='myCache')
public Object getData() {
Object data = // 获取数据的逻辑
if (data == null) {
return new Object(); // 返回一个非 null 值
}
return data;
}
这样就可以避免将 null 值存入缓存中,从而避免出现 'Null key returned for cache operation' 异常。
原文地址: https://www.cveoy.top/t/topic/pkfY 著作权归作者所有。请勿转载和采集!