过滤掉不需要的数据后缓存过滤后的数据
Caching Filtered Data After Filtering Unwanted Data
假设我有一个名为:
Result
其中包含更多的数据类型。以此数据为例:
[{Albums : {
name: “albumName”,
artist: {name: “artistName,
link:“https:link.com”
},
link: “http...”
} Tracks: {
name: “trackName”,
artist: {name: “artistName,
link:“https:link.com”
},
link: “http...”
} Playlists: {
name: “playlistName”,
artist: {name: “artistName,
link:“https:link.com”
},
link: “http...”
}
}]
想象一下,您已经使用任何一种方法过滤了数据,而您只想获得的值是名称,所以您执行过滤操作,然后缓存所有过滤后的值,这样当您调用 api 同样,不需要再次过滤它,因为您可以直接在缓存中获取它。有或没有 @Cachaeble
这甚至可能吗?性能有任何改进吗?
目前这个问题很笼统,所以我做一个笼统的回答:
有Cacheable
也有可能没有,就是直接调用缓存实现或者自己实现缓存机制。性能提升取决于 API 调用的延迟,过滤器的延迟/CPU 消耗与缓存的处理开销相比,缓存是 Spring 缓存抽象和缓存解决方案。
如果只有几个不同的查询重复请求,您的缓存将有效。如果您有很多不同的查询并且重复次数不多,您的缓存可能无效 and/or 消耗大量内存。
假设我有一个名为:
Result
其中包含更多的数据类型。以此数据为例:
[{Albums : {
name: “albumName”,
artist: {name: “artistName,
link:“https:link.com”
},
link: “http...”
} Tracks: {
name: “trackName”,
artist: {name: “artistName,
link:“https:link.com”
},
link: “http...”
} Playlists: {
name: “playlistName”,
artist: {name: “artistName,
link:“https:link.com”
},
link: “http...”
}
}]
想象一下,您已经使用任何一种方法过滤了数据,而您只想获得的值是名称,所以您执行过滤操作,然后缓存所有过滤后的值,这样当您调用 api 同样,不需要再次过滤它,因为您可以直接在缓存中获取它。有或没有 @Cachaeble
这甚至可能吗?性能有任何改进吗?
目前这个问题很笼统,所以我做一个笼统的回答:
有Cacheable
也有可能没有,就是直接调用缓存实现或者自己实现缓存机制。性能提升取决于 API 调用的延迟,过滤器的延迟/CPU 消耗与缓存的处理开销相比,缓存是 Spring 缓存抽象和缓存解决方案。
如果只有几个不同的查询重复请求,您的缓存将有效。如果您有很多不同的查询并且重复次数不多,您的缓存可能无效 and/or 消耗大量内存。