缓存优化
多级缓存架构,提升系统性能。
📋 多级缓存架构
🎯 多级缓存实现
java
@Service
public class CacheService {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
private Cache<String, Object> localCache = Caffeine.newBuilder()
.maximumSize(10000)
.expireAfterWrite(5, TimeUnit.MINUTES)
.build();
/**
* 获取数据(多级缓存)
*/
public <T> T get(String key, Class<T> type, Supplier<T> loader) {
// 1. 从本地缓存获取
T value = (T) localCache.getIfPresent(key);
if (value != null) {
return value;
}
// 2. 从Redis获取
value = (T) redisTemplate.opsForValue().get(key);
if (value != null) {
// 回填本地缓存
localCache.put(key, value);
return value;
}
// 3. 从数据源加载
value = loader.get();
if (value != null) {
// 写入两级缓存
redisTemplate.opsForValue().set(key, value, 30, TimeUnit.MINUTES);
localCache.put(key, value);
}
return value;
}
}