Java 两级缓存框架,可以让应用支持两级缓存框架 ehcache(Caffeine) + redis
避免完全使用独立缓存系统所带来的网络IO开销问题
基于内存和 Redis 的两级 Java 缓存框架
第一级缓存使用内存(同时支持 Ehcache 2.x、Ehcache 3.x 和 Caffeine),第二级缓存使用 Redis(推荐)/Memcached 。 由于大量的缓存读取会导致 L2 的网络成为整个系统的瓶颈,因此 L1 的目标是降低对 L2 的读取次数。 该缓存框架主要用于集群环境中。单机也可使用,用于避免应用重启导致的缓存冷启动后对后端业务的冲击。
从 1.3.0 版本开始支持 JGroups 和 Redis Pub/Sub 两种方式进行缓存事件的通知。在某些云平台上可能无法使用 JGroups 组播方式,可以采用 Redis 发布订阅的方式。
两级缓存结构 L1: 进程内缓存(caffeine\ehcache)
L2: Redis/Memcached 集中式缓存 数据读取配置配置文件位于 core/resources 目录下,包含三个文件: - properties 核心配置文件,可配置两级的缓存,Redis 服务器、连接池以及缓存广播的方式
- caffeine.properties 如果一级缓存选用 Caffeine ,那么该文件用来配置缓存信息
- ehcache.xml Ehcache 的配置文件,配置说明请参考 Ehcache 文档
- ehcache3.xml Ehcache3 的配置文件,配置说明请参考 Ehcache 文档
- network.xml JGroups 网络配置,如果使用 JGroups 组播的话需要这个文件,一般无需修改
实际使用过程需要将所需的配置文件复制到应用类路径中,如 WEB-INF/classes 目录。 测试方法- 安装 Redis
- 下载源码
- 修改 core/resource/j2cache.properties 配置使用已安装的 Redis 服务器
- 在命令行中执行 mvn package -DskipTests=true 进行项目编译
- 打开多个命令行窗口,同时运行 runtest.sh
- 在 > 提示符后输入 help 查看命令,并进行测试

链接:https://pan.quark.cn/s/b29f3b0b9cf5
提取码下载:
|