SpringBoot系列——使用Spring Cache和Redis实现查询数据缓存
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@Service
public class CachingService {
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Cacheable(value = "userCache", key = "#id")
public String getUserById(String id) {
// 假设这是从数据库中获取用户的实际方法
return "User_" + id;
}
// 使用RedisTemplate直接操作缓存
public void setUserInCache(String id, String user) {
redisTemplate.opsForValue().set("user_" + id, user);
}
public void evictUserCache(String id) {
redisTemplate.delete("user_" + id);
}
}
这个示例中,我们定义了一个CachingService
类,它使用了@Cacheable
注解来标记getUserById
方法,使其能够利用名为userCache
的缓存。同时,我们提供了setUserInCache
方法来直接往Redis中设置用户数据,以及evictUserCache
方法来从缓存中移除用户数据。这样,开发者可以根据需要选择使用注解驱动的缓存还是直接操作缓存。
评论已关闭