目录
一、SpringBoot缓存
1.1 缓存是什么?
缓存是一种介于数据永久存储介质与应用程序之间的数据临时存储介质,使用缓存可以有效的减少低速数据读取过程的次数(例如磁盘IO),提高系统性能。此外缓存不仅可以用于提高永久性存储介质的数据读取效率,还可以提供临时的数据存储控件。而springboot提供了对市面上几乎所有的缓存技术进行整合的方案。
1.2 SpringBoot缓存
在Spring Boot中,@CachePut、@Cacheable和@CacheEvict是用于缓存管理的注解。它们可以与Spring框架的缓存抽象一起使用,以提高应用程序的性能和响应速度。
二、springboot内置缓存
2.1 @CachePut
@CachePut:该注解用于将方法的返回值添加到缓存中。每次调用带有@CachePut注解的方法时,都会执行方法体,并将返回值存储到缓存中。如果缓存中已经存在相同的键,则会更新缓存中的值。
【示例】
@CachePut(value = "myCache", key = "#id")
public User updateUser(String id, User user) {
// 更新用户信息的逻辑
return updatedUser;
}
2.2 @Cacheable
@Cacheable:该注解用于从缓存中获取数据。当调用带有@Cacheable注解的方法时,首先会检查缓存中是否存在相同的键。如果存在,则直接从缓存中获取值并返回;如果不存在,则执行方法体,并将返回值存储到缓存中。
【示例】
@Cacheable(value = "myCache", key = "#id")
public User getUserById(String id) {
// 从数据库或其他数据源获取用户信息的逻辑
return user;
}
2.3 @CacheEvict
@CacheEvict:该注解用于从缓存中移除数据。当调用带有@CacheEvict注解的方法时,会根据指定的键从缓存中移除对应的值。
【示例】
@CacheEvict(value = "myCache", key = "#id")
public void deleteUser(String id) {
// 删除用户的逻辑
}
【注】
这些注解可以与不同的缓存管理器(如Ehcache、Redis等)一起使用,应该根据具体需求进行配置。在使用这些注解之前,需要在Spring Boot应用程序中配置相应的缓存管理器和缓存策略。