Redis之Spring常用注解整理

 Redis 是一个key-value 的存储系统,value可以存储string,List,Map等各种类型的数据。多用于缓存每次都要查询的固定数据,降低对数据库的访问量,调高网站性能。

下面主要介绍spring的三个关于Redis的注解,@Cacheable,@CacheEvict,@CachePut。

@Cacheable

@Cacheable注解类似于保存放法。注解可以标记在方法上,也可以在类上。在某一个方法上就将这个方法的返回值放到cache中。在一个类上,类中的方法的返回值都放到cache中。
@Cacheable注解有几个重要属性。value 是缓存的名称。key键值对中的键,可以自定义也可以默认生成。condition是缓存存入的条件。

//将地区名称长度大于5的地区信息,以地区名称为key放入regions缓存中 
@Cacheable(value = " regions",key="#regionName",condition="#regionName.length()>10") 
public List<SysRegion> findRegion(String regionName) { 
    List<SysRegion> list = this.findByRegionName(regionName); return list; 
}

@CacheEvict

@CacheEvict相当于删除,将符合注解中属性的缓存清除。

//将regions缓存信息全删除 
@CacheEvict(value = "regions", allEntries = true)
public void deleteRegion() throws TpwsBusinessException { 

}

@CacheEvict除了value,key,condition 属性外,还有 allEntries、beforeInvocation属性。allEntries是boolean类型, 为true表示清除缓存所有数据,默认为false。beforeInvocation默认为false,清除缓存是发生在调用方法之后,改为true,就发上在调用方法之前,即使方法出错也会清除。

@CachePut

@CachePut注解相当于update。确保添加注解的方法会执行,并将改变的数据写入缓存

// 执行查询方法,并将更新regions缓存的值 
@CachePut(value = " regions",) 
public List<SysRegion> upRegion(String regionName) { 
    List<SysRegion> list = this.findByRegionName(regionName); return list; 
}

参考:https://www.imooc.com/article/details/id/20140

猜你喜欢

转载自blog.csdn.net/fendou_0123456789/article/details/82493979