Skip to content

缓存优化 ​

多级缓存架构,提升系统性能。

📋 多级缓存架构 ​

🎯 多级缓存实现 ​

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;
    }
}

上一章节:数据层架构概览
下一章节:读写分离
返回目录:系统架构能力