引言
对于大规模的Java Web应用来说,会有大量的数据和大量的用户,对于如何提升网站的响应速度成为了我们开发人员的一个挑战。对于缓存来说,它可以解决其中的一部分问题。在这篇文章中,我会介绍什么是缓存,它的工作流程是什么样的,被缓存的数据应该具有什么样的特性。最后我会介绍一个非常受欢迎的缓存算法 - LRU,并给出了一个具体的实现。
缓存的大致工作流程
缓存就是把我们频繁访问的数据(并且这些数据比较消耗时间计算或读取)放到内存中,以便我们下次用到这样的数据时,就不用重新计算或者重新读取。比如从数据库中查询出的结果、IO读取一些配置文件的信息等。Java中的缓存接口通常如下所示:
public interface Cache {
Object get(final Object key);
Object put(final Object key, final Object value);
}
一个普通应用缓存的大致流程如下图: