第一步:在配置文件(application.properties)中添加以下配置选项:
# Redis server index
spring.redis.database=0
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=123456
spring.redis.pool.max-active=4
spring.redis.pool.max-wait=-1
spring.redis.pool.max-idle=4
spring.redis.pool.min-idle=0
spring.redis.timeout=0
第二步:在jpaRepository中使用,见下面代码:
@CacheConfig(cacheNames = "areas")
public interface IdCareaRepository extends JpaRepository<IdCarea, String> {
@Cacheable(key = "#p0")
IdCarea findById(String id);
List<IdCarea> findByLevel(int id);
@Cacheable(value="areas-list", key = "#p0+-+#p1")
List<IdCarea> findByIdLikeAndLevel(String id, int level);
}
@CacheConfig 开启Cache,配置缓存名称为areas打头
@Cacheable(key = "#p0") 方法启用cache,并配置key为第一个参数值
@Cacheable(value="areas-list", key = "#p0+-+#p1") #p0为第一个参数,#p1为第二个参数
第三步:在service中启用缓存,见下面代码
@Service
@EnableCaching
public class AreaService {
@Autowired
private IdCareaRepository idCareaRepository;
@Cacheable(value="area-list", key="#id+-+#level")
public List<IdCarea> findByIdLikeAndLevel(String id, int level){
return idCareaRepository.findByIdLikeAndLevel(id, level);
};
@Cacheable(value="area-", key="#id")
public IdCarea findById(String id){
return idCareaRepository.findById(id);
}
@Cacheable(value="area-level", key="#level")
public List<IdCarea> findByLevel(int level){
return idCareaRepository.findByLevel(level);
}
}
@EnableCaching启用缓存
@Cacheable(value="area-level", key="#level") 定制缓存的value和key,可以也已使用#p0,#p1表示