Springle+EHCache 分布式缓存开发(一)

来源:互联网 发布:淘宝怎么查订单号物流 编辑:程序博客网 时间:2024/05/19 06:16

一、概述:

系统缓存是位于应用程序与物理库之间,用于临时存放复制数据的内存区域,目的是为了减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能。EHCache是一个快速的、轻量级的、易于使用的、进程内的缓存。

使用Spring的AOP机制实现数据的缓存和清理,并且内存中的数据存放在Map中,Map的key的值为:类名全路径+方法名+传入参数toString()的值。

当调用某个方法时,程序首先进入拦截类。拦截类检查这个方法上的标志:

如果标志是“@EHCacheTag(Type.CACHE)”,拦截类根据key查找内存中数据,如果查到数据,则返回数据;如果没有查到数据,则执行被调用的方法,得到方法的返回值,将方法返回值放入Map中,并且返回该值。

如果标志是“@EHCacheTag(Type.CLEAR)”,则执行被调用的方法,然后清除Map中的数据。

决定是否使用缓存的原则主要有一下两点:

1.         该方法被频繁的访问。

2.         该方法的生存周期较长,即每次访问该方法时,输入和输出的值都比较固定。

一般将query类操作配置缓存,这样可以减少查询时访问数据库的次数,在调用update和delete类方法的时候,清空缓存,因为此时数据库中的数据已经发生变化,需要将缓存中的数据清空,以免出现数据不一致现象。