Java缓存

📅 2026/7/19 4:24:08 👁️ 阅读次数 📝 编程学习
Java缓存

缓存




一、Spring Cache(Spring 官方缓存抽象,最主流)
Spring Cache不是缓存实现,是一套统一缓存注解规范,底层可以切换不同缓存实现,无需改动业务代码。
底层 4 种实现:
Simple(默认)
内存缓存,基于 ConcurrentHashMap,单机本地缓存,无过期、持久化功能,仅简单临时缓存,测试 / 小型单机程序使用。
EhCache
老牌本地进程缓存,支持磁盘持久化、缓存过期、淘汰策略,单机项目常用,不支持分布式。


Redis
分布式缓存,独立中间件,支持多服务共享缓存、持久化、多种数据结构,微服务、分布式项目首选。


Memcached
分布式内存缓存,仅支持字符串、无持久化,功能简单,现在国内项目使用远少于 Redis。



Spring Cache 核心注解
@Cacheable查询缓存、@CachePut更新缓存、@CacheEvict删除缓存、@Caching组合操作。
二、JetCache(阿里开源)
封装统一 API,同时支持本地缓存 + 分布式缓存双级缓存;
兼容 Redis、Tair、本地内存;
拓展功能更强:自动异步刷新缓存、分布式锁、缓存统计、自定义过期时间粒度;
阿里系项目广泛使用,功能比原生 Spring Cache 更丰富。








三、J2Cache(开源二级缓存框架)
二级缓存架构:一级本地缓存(Caffeine/Ehcache)+ 二级 Redis/Memcached 分布式缓存;
解决单纯 Redis 频繁网络 IO 的性能问题,本地命中不走网络,大幅提升速度;
自带缓存同步机制,多节点本地缓存自动更新,避免数据不一致;
适合高并发后台管理系统、JavaWeb 传统项目。





随机数生成