Files
rikako-note/spring/spring cache/spring cache.md

9 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Spring Cache
## Cache Abstract
Cache针对java方法进行缓存当想要获取的信息在cache中可获取时可以从cache中进行获取从而降低了java方法的执行次数。
每次在目标方法执行时cache abstraction应用了一个cache check检查该方法是否已经通过指定参数调用过。如果该方法已经通过指定参数调用过会直接从缓存中获取已缓存的执行结果而无需重复的调用方法。如果该方法尚未被调用过那么调用该方法并且将该方法的返回结果添加到缓存中从而在方法下次调用时直接从cache中获取值。
通过cache可以缓存开销较高的方法结果io开销较高和cpu开销较高的方法结果均可被缓存cache逻辑对于调用者来说是透明的。
> cache abstraction提供了一系列缓存相关的api可以对cache内容进行更新或是移除当缓存数据内容会改变的情况下这些api会很有用。
在spring中cache abstraction的caching service是一个抽象接口而不是实现需要使用实际的storage来对缓存数据进行存储。
spring提供了cache abstraction的一系列实现例如基于JDK java.util.concurrent.ConcurrentMap的缓存、Caffeine等