V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xuxueli
V2EX  ›  程序员

XXL-CACHE v1.1.0 | 多级缓存框架

  •  
  •   xuxueli · 3 小时 42 分钟前 · 122 次点击

    Release Notes

    • 1 、 [升级] 项目重构升级;定位 多级缓存框架,高效组合本地缓存和分布式缓存(Redis+Caffeine),支持“多级缓存、一致性保障、TTL 、Category 隔离、防穿透”等能力,提供高性能多级缓存解决方案。
    • 2 、 [重构] 高性能系统重构设计,底层设计 L1(Local)+L2(Remote)多级缓存模型,除分布式缓存之外前置在应用层设置本地缓存,高热查询前置本地处理避免远程通讯,最大化提升性能;
    • 3 、 [重构] 一致性保障设计,支持多层级、集群多节点之间缓存数据一致性保障,借助广播消息( Redis Pub/Sub )以及客户端主动过期,实现 L1 及 L2 之间以及 L1 各集群节点间缓存数据一致性同步;
    • 4 、 [重构] 框架进行模块化抽象设计,本地缓存、分布式缓存以及序列化方案均支持自定义扩展;
    • 5 、 [易用性] 缓存 API 优化改造,多级缓存框架支持业务透明接入,屏蔽底层实现细节,降低业务开发成本,以及学习认知成本;
    • 6 、 [升级] 多个依赖升级最新版本,如 jedis 、spring 等;
    • 7 、 [优化] 核心依赖推送 maven 中央仓库, 方便用户接入和使用;

    XXL- CACHE 快速接入示例

    代码参考 github 仓库 /test 目录: https://github.com/xuxueli/xxl-cache/tree/master/xxl-cache-samples

    1 、Maven 引入

    <!-- https://mvnrepository.com/artifact/com.xuxueli/xxl-cache-core -->
    <dependency>
        <groupId>com.xuxueli</groupId>
        <artifactId>xxl-cache-core</artifactId>
        <version>${最新稳定版}</version>
    </dependency>
    

    2 、组件配置

    配置文件说明:

    # xxl-cache
    ## L1 缓存(本地)提供者,默认 caffeine
    xxl.cache.l1.provider=caffeine
    ## L1 缓存最大容量,默认 10000 ;
    xxl.cache.l1.maxSize=-1
    ## L1 缓存过期时间,单位秒,默认 10min ;
    xxl.cache.l1.expireAfterWrite=-1
    ## L2 缓存(分布式)提供者,默认 redis
    xxl.cache.l2.provider=redis
    ## L2 缓存节点配置,多个节点用逗号分隔;示例 “127.0.0.1:6379,127.0.0.1:6380”
    xxl.cache.l2.nodes=127.0.0.1:6379
    ## L2 缓存用户名配置
    xxl.cache.l2.user=
    ## L2 缓存密码配置
    xxl.cache.l2.password=
    

    组件初始化配置:

    @Bean(initMethod = "start", destroyMethod = "stop")
    public XxlCacheFactory xxlCacheFactory() {
        XxlCacheFactory xxlCacheFactory = new XxlCacheFactory();
        xxlCacheFactory.setL1Provider(l1Provider);
        xxlCacheFactory.setMaxSize(maxSize);
        xxlCacheFactory.setExpireAfterWrite(expireAfterWrite);
        xxlCacheFactory.setL2Provider(l2Provider);
        xxlCacheFactory.setNodes(nodes);
        xxlCacheFactory.setUser(user);
        xxlCacheFactory.setPassword(password);
        return xxlCacheFactory;
    }
    

    经过上述 2 步,已完成全部配置工作。

    3 、客户端接入:

    String category = "user";
    String key = "user03";
    // 缓存写入 
    XxlCacheHelper.getCache(category).set(key, value);
    // 缓存查询
    String value = XxlCacheHelper.getCache(category).get(key);
    // 缓存删除
    XxlCacheHelper.getCache(category).del(key);
    ...
    

    简介

    XXL-CACHE 是一个 多级缓存框架,高效组合本地缓存和分布式缓存(Redis+Caffeine),支持“多级缓存、一致性保障、TTL 、Category 隔离、防穿透”等能力;拥有“高性能、高扩展、灵活易用”等特性,提供高性能多级缓存解决方案;

    img_01.png

    特性

    • 1 、灵活易用: 接入灵活方便,一分钟上手;
    • 2 、多级缓存:高效组合本地缓存和分布式缓存(Redis+Caffeine),支持 L1 、L2 级别缓存,支持多场景缓存诉求;
    • 3 、高扩展:框架进行模块化抽象设计,本地缓存、分布式缓存以及序列化方案均支持自定义扩展;
    • 4 、高性能:底层设计 L1(Local)+L2(Remote)多级缓存模型,除分布式缓存之外前置在应用层设置本地缓存,高热查询前置本地处理避免远程通讯,最大化提升性能;
    • 5 、一致性保障:支持多层级、集群多节点之间缓存数据一致性保障,借助广播消息( Redis Pub/Sub )以及客户端主动过期,实现 L1 及 L2 之间以及 L1 各集群节点间缓存数据一致性同步;
    • 6 、TTL:支持 TTL ,支持缓存数据主动过期及清理;
    • 7 、Category 隔离:支持自定义缓存 Category 分类,缓存数据存储隔离;
    • 8 、缓存风险治理:针对典型缓存风险,如缓存穿透,底层进行针对性设计进行风险防护;
    • 9 、透明接入:支持业务透明接入,屏蔽底层实现细节,降低业务开发成本,以及学习认知成本;
    1 条回复    2025-02-05 01:19:31 +08:00
    komite
        1
    komite  
       3 小时 33 分钟前 via iPhone
    xxl 系列最近活跃度很高啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   651 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 20:53 · PVG 04:53 · LAX 12:53 · JFK 15:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.