适合使用缓存的数据:
1 很少更新的数据
2 经常被用到的数据
3 数据量不大的数据
缓存控制
声明3个注解,对类或者方法是否支持缓存进行控制
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCacheable {
int expire() default 600;//缓存过期时间,单位秒,默认60
}
@Target(ElementType.METHOD)
@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface MyUseCache {
}
@Target(ElementType.METHOD)
@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface MyClearCache {
}
MyCacheable注解标注在类上,控制这个类的方法时候可以使用MyUseCache和MyClearCache注解
MyUseCache注解标注在方法上,在执行方法之前,先从缓存尝试获取数据,如果获取了,直接返回数据,如果没有获取到,执行方法进行查询,并且把查询到的数据放入缓存
MyClearCache注解标注在方法上,清空缓存
使用原则
会更新数据的操作都清理缓存
对于有关联关系的表,当相关联的表进行了更新操作时,会出现缓存数据和数据库数