【数媒在线课堂】Xcache:多级缓存框架介绍
2025-09-10 06:35:09 113
推广 | 这一次的源创会,不会只让你坐着听讲
多年前,我造过一个轮子,也是多级缓存框架,名字也叫做 Xcache。
多年后,本着重复造轮子的精神,我又造了个新轮子:https://github.com/patricklaux/xcache
因为是新造的轮子,所以看起来似乎更圆了一些,跑起来似乎也更顺滑了一些。
非要自夸一下的话,那就是这么些年的编程生涯,在踩过许多坑之后,编码质量更好了点,架构设计更合理了些。
1. 整体架构
展开剩余69%说明:
Cache API:缓存接口。
Cache Annotation:缓存注解。
Cache:缓存对象。
Store:缓存数据存储,每个缓存对象实例最多可支持三级缓存数据存储。
Codec:数据编解码(序列化与反序列化)。
Compressor:数据压缩。
CacheLoader:数据加载,用于从数据源读取数据。
CacheRefresh:缓存数据刷新,定时通过 CacheLoader 加载并刷新缓存数据。
CacheSync:缓存数据同步,用于维护各实例间私有缓存数据的一致性。
CacheMetrics:缓存指标采集,用于记录缓存调用次数及命中率等指标。
MetricsSystem:缓存指标信息的存储、计算与展示。
MQ:消息队列,用于转发数据同步消息(已有实现采用 Redis Stream)。
DataSource:数据源。
RedisorOther……:缓存数据存储仓库。
2. 框架特性
支持多级缓存:一级缓存采用 Caffeine,二级缓存采用 Redis,最多可支持三级缓存。
缓存数据同步:通过缓存事件广播,多个应用实例的缓存数据保持一致。
缓存指标统计:支持调用次数、命中次数等指标,数据呈现可自由扩展。
缓存数据刷新:定时自动刷新缓存数据,避免慢查询导致应用响应缓慢。
随机存活时间:可选择使用随机存活时间,避免大量数据集中过期,导致数据源压力过大。
数据回源加锁:同一个键同一时刻仅允许一个线程回源查询,减轻数据源压力。
数据存在断言:可选择实现数据存在断言接口,譬如 Bloom Filter,减少无效回源查询。
支持缓存空值:可选择缓存空值,减少无效回源查询。
缓存数据压缩:可选择数据压缩,降低内存 (磁盘) 消耗。
支持缓存注解:Cacheable,CacheableAll,CachePut,CachePutAll,…… ,CacheClear
适配 Spring Cache 注解:如希望使用 Spring Cache 注解,可依赖 Xcache 适配项目,即可解锁更多功能。
发布于:湖南省新闻动态
热点资讯
-
1.国乒人最轻松的一天!王楚钦与好友聚餐微熏,王曼昱私照绝美,孙
- 1

- 国乒人最轻松的一天!王楚钦与好友聚餐微熏,王曼昱私照绝美,孙
- 2026-02-08
- 1
-
2.造船周期红利全面释放 中国重工一季度业绩大增生产排期至202
- 2

- 造船周期红利全面释放 中国重工一季度业绩大增生产排期至202
- 2025-04-13
- 2
-
3.【基层动态】保德县委统战部积极参加全县义务植树活动
- 3

- 【基层动态】保德县委统战部积极参加全县义务植树活动
- 2026-05-02
- 3
-
4.工人君@权益 | 花4000
- 4

- 工人君@权益 | 花4000
- 2025-05-24
- 4
-
5.考研成绩单在哪儿揭晓?
- 5

- 考研成绩单在哪儿揭晓?
- 2025-02-05
- 5
-
6.产后42天达标5个信号,恭喜你恢复“开挂”啦!
- 6

- 产后42天达标5个信号,恭喜你恢复“开挂”啦!
- 2025-12-18
- 6
-
7.深刻领会习近平党建思想的理论意蕴与实践伟力
- 7

- 深刻领会习近平党建思想的理论意蕴与实践伟力
- 2026-07-15
- 7
-
8.有种痛苦叫买了“机械素质好,软件差”的电车,3个月就想卖车了
- 8

- 有种痛苦叫买了“机械素质好,软件差”的电车,3个月就想卖车了
- 2025-07-21
- 8
-
9.【数媒在线课堂】Xcache:多级缓存框架介绍
- 9

- 【数媒在线课堂】Xcache:多级缓存框架介绍
- 2025-09-10
- 9
-
10.安利股份: 4月30日接受机构调研, 国泰海通、兴全基金参与
- 10

- 安利股份: 4月30日接受机构调研, 国泰海通、兴全基金参与
- 2025-05-22
- 10