redis缓存注解用法
jeecg-boot默认集成了redis,集成类在RedisConfig.java,缓存的有效期设置也在这个地方设置。关于缓存具体用法参考下面文档
三种用法
1. 缓存注解@Cacheable
1.1 通过@Cacheable加缓存
//key的定义参考官方文档
@Cacheable(cacheNames="jeecgDemo", key="#id")
示例:
/**
* 缓存注解测试: redis
*/
@Cacheable(cacheNames="jeecgDemo", key="#id")
public JeecgDemo getByIdCacheable(String id) {
JeecgDemo t = jeecgDemoMapper.selectById(id);
System.err.println(t);
return t;
}
具体用法参考: https://jeecg.blog.csdn.net/article/details/130499908
1.2 通过@Cacheable加缓存并约定缓存有效时间
3.7.3+ 才支持通过注解约定缓存有效时间
/**
* @Cacheable自定义TTL:#60(单位是秒,目前只支持这一种单位)
* 通过注解方式,指定缓存有效期60秒
*
* 参考博客:https://www.cnblogs.com/h2285409/p/18324396
*/
@Override
@Cacheable(cacheNames = "ceshi:redis:ttl#60", key = "#id")
public JeecgDemo getByIdCacheableTTL(String id) {
JeecgDemo t = jeecgDemoMapper.selectById(id);
System.err.println("---未读缓存,读取数据库---");
System.err.println(t);
return t;
}
1.3 通过@CacheEvict清缓存
@CacheEvict用来标注在需要清除缓存元素的方法或类上的 示例:
@CacheEvict(value="dictCache", allEntries=true)
public Result<SysDict> delete(@RequestParam(name="id",required=true) String id) {
具体用法参考:https://jeecg.blog.csdn.net/article/details/130499908
2. 通过Jeecg封装工具类
//封装了redis操作各种方法
@Autowired
private RedisUtil redisUtil;
3.通过原生工具类redisTemplate
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@Autowired
private StringRedisTemplate stringRedisTemplate;