所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。
缓存主要可分为二大类:
- 1、通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式
- 2、内存缓存,也就是实现一个类中静态Map,对这个Map进行常规的增删查.
- 3、分布式缓存,利用redis等内存数据库
这里主要讲内存缓存。核心就是一个Map,利用key和value进行赋值,利用key进行取值。在设计缓存组件时,不可能让内存占用无限大,所以就会有key的过期时间和过期策略,当chche到内存溢出时必须清除掉最早期的一些缓存对象,或最不常用的缓存对象。
基于java的内存缓存组件非常多,java本身利用ConcurrentHashMap就是实现了自己的高并发缓存。
第三方的缓存组件包括EHCache、OSCache、GuavaCahce等等,这里主要讲两个EHCache和GuavaCache。