概览
缓存是一个有着更快的查询速度的存储技术,这里的更快是指比起从初始的数据源查询(比如数据库,以下都称作数据库)而言。我们经常会把频繁请求的或是耗时计算的数据缓存起来,在程序收到请求这些数据的时候可以直接从缓存中查询数据返回给客户端来提高系统的吞吐量,现在我们来看看有哪些缓存模式可以考虑。
Cache-Aside
Cache-Aside
是最广泛使用的缓存模式之一,如果能正确使用 Cache-Aside
的话,能极大的提升应用性能, Cache-Aside
可用来读或写操作。
读操作
我们先来看下读操作的数据流:
- 1、程序接收数据查询的请求
- 2、程序检查要查询的数据是否在缓存上
- 如果存在(cache hit),从缓存上查询出来
- 如果不存在(cache miss),从数据库中检索数据并存入缓存中
- 3、程序返回要查询的数据
在Spring中,可如下实现,当 getRecordForSearch()
方法被调用的时候,如果缓存中存在对应key的数据,那就会自动的从缓存中获取(此时方法体不会被执行),当缓存中不存在key对应数据的时候,会执行方法体从数据库中查询数据并设置到缓存中去。
@Cacheable("default&