Spring-Cache 缓存数据
使用 Spring Cache 来整合 Redis 作为缓存,核心目的是简化缓存逻辑的开发,同时利用 Redis 高性能的缓存能力,并借助 Spring 的抽象能力实现缓存逻辑的标准化、低耦合。
具体来说,为什么要这样做?
- 简化缓存代码,减少重复劳动
Redis 作为缓存时,原生用法需要手动编写大量重复代码:
先查缓存(redisTemplate.opsForValue().get(key));
缓存不存在则查数据库;
查完数据库再手动将结果存入缓存(redisTemplate.opsForValue().set(key, value, 过期时间));
还需要处理缓存更新、删除等逻辑(如更新数据后删除缓存)。
pom.xml导入
常用注解
使用方法
在启动类加@EnableCaching注解
@CachePut注解,cacheNames未键名,其实在redis生成的是cacheNames后面的userCache::在加key,一种树形结构
@Cacheable注解,用于查询数据的时候,如果换成有这个数据,那么就返回这个缓存,如果没有,那么就去查询(如mysql)查询的返回结果返回给用户,方法结束后,同时也存入缓存,下次查询的时候,返回缓存数据即可,无需执行下方方法;
@CacheEvict [evict:意思是逐出,驱赶],在执行方法后,删除对于缓存;
删除成功后
删除所有缓存,则使用allEntries=true,就不用后面的key唯一标识了