杠精派
派聪明
0/512

热门评论

不见山谷 2026年03月21日 16:22
引用原文:Caffeine
@派聪明,在技术派项目是如何整合Caffine技术的
点赞
回复3 取消回复
派聪明 2026年03月21日 16:22
Caffeine在技术项目中主要通过以下方式整合使用: 1. 添加依赖: ```xml <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> </dependency> ``` 2. 配置缓存策略: - 基于容量策略:maximumSize/maximumWeight - 基于时间策略:expireAfterAccess/expireAfterWrite/expireAfter - 基于引用策略:weakKeys/weakValues/softValues 3. 实现四种缓存模式: - 手动加载:使用getIfPresent/get方法 - 自动加载:通过CacheLoader指定加载规则 - 异步手动加载:返回CompletableFuture - 异步自动加载:异步执行CacheLoader 4. 核心操作: - 查询:getIfPresent/get/getAll - 添加:put - 清除:invalidate/invalidateAll Caffeine能显著提高服务吞吐率和QPS,降低响应时间,是本地缓存的首选方案。
点赞
回复 取消回复
不见山谷 2026年03月21日 16:23
@派聪明,具体都是在缓存些什么,结合业务场景来讲
Caffeine在技术项目中主要通过以下方式整合使用: 1. 添加依赖: ```xml <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> </dependency> ``` 2. 配置缓存策略: - 基于容量策略:maximumSize/maximumWeight - 基于时间策略:expireAfterAccess/expireAfterWrite/expireAfter - 基于引用策略:weakKeys/weakValues/softValues 3. 实现四种缓存模式: - 手动加载:使用getIfPresent/get方法 - 自动加载:通过CacheLoader指定加载规则 - 异步手动加载:返回CompletableFuture - 异步自动加载:异步执行CacheLoader 4. 核心操作: - 查询:getIfPresent/get/getAll - 添加:put - 清除:invalidate/invalidateAll Caffeine能显著提高服务吞吐率和QPS,降低响应时间,是本地缓存的首选方案。
点赞
回复 取消回复
派聪明 2026年03月21日 16:24
缓存主要存储以下内容,结合不同业务场景具体应用: 1. **热点数据**:电商秒杀、APP首页等高并发场景,将高频访问数据存入缓存,减少数据库压力。如商品信息、用户会话数据。 2. **配置与字典数据**:业务枚举、标签类等更新不频繁的数据,如商品分类、系统配置参数,适合本地缓存。 3. **用户相关信息**:登录后返回的用户基础信息、权限数据等,可存储在localStorage或分布式缓存中。 4. **查询结果缓存**:Elasticsearch的filter查询结果、复杂计算结果,避免重复计算,提升查询速度。 5. **媒体与二进制数据**:视频直播中的封面图、缩略图等,使用indexedDB存储减轻服务器压力。 6. **会话状态**:用户购物车、表单填写状态等,存储在sessionStorage或Redis中。 不同场景采用不同缓存策略: - 低一致性需求(如店铺类型):使用内存淘汰机制 - 高一致性需求(如店铺详情):主动更新+超时剔除兜底 - 大数据量:多级缓存(本地+分布式)提升性能
@派聪明,具体都是在缓存些什么,结合业务场景来讲
点赞
回复 取消回复

4 条评论

不见山谷 2026年03月21日 16:22
引用原文:Caffeine
@派聪明,在技术派项目是如何整合Caffine技术的
点赞
回复3 取消回复
派聪明 2026年03月21日 16:22
Caffeine在技术项目中主要通过以下方式整合使用: 1. 添加依赖: ```xml <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> </dependency> ``` 2. 配置缓存策略: - 基于容量策略:maximumSize/maximumWeight - 基于时间策略:expireAfterAccess/expireAfterWrite/expireAfter - 基于引用策略:weakKeys/weakValues/softValues 3. 实现四种缓存模式: - 手动加载:使用getIfPresent/get方法 - 自动加载:通过CacheLoader指定加载规则 - 异步手动加载:返回CompletableFuture - 异步自动加载:异步执行CacheLoader 4. 核心操作: - 查询:getIfPresent/get/getAll - 添加:put - 清除:invalidate/invalidateAll Caffeine能显著提高服务吞吐率和QPS,降低响应时间,是本地缓存的首选方案。
点赞
回复 取消回复
不见山谷 2026年03月21日 16:23
@派聪明,具体都是在缓存些什么,结合业务场景来讲
Caffeine在技术项目中主要通过以下方式整合使用: 1. 添加依赖: ```xml <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> </dependency> ``` 2. 配置缓存策略: - 基于容量策略:maximumSize/maximumWeight - 基于时间策略:expireAfterAccess/expireAfterWrite/expireAfter - 基于引用策略:weakKeys/weakValues/softValues 3. 实现四种缓存模式: - 手动加载:使用getIfPresent/get方法 - 自动加载:通过CacheLoader指定加载规则 - 异步手动加载:返回CompletableFuture - 异步自动加载:异步执行CacheLoader 4. 核心操作: - 查询:getIfPresent/get/getAll - 添加:put - 清除:invalidate/invalidateAll Caffeine能显著提高服务吞吐率和QPS,降低响应时间,是本地缓存的首选方案。
点赞
回复 取消回复
派聪明 2026年03月21日 16:24
缓存主要存储以下内容,结合不同业务场景具体应用: 1. **热点数据**:电商秒杀、APP首页等高并发场景,将高频访问数据存入缓存,减少数据库压力。如商品信息、用户会话数据。 2. **配置与字典数据**:业务枚举、标签类等更新不频繁的数据,如商品分类、系统配置参数,适合本地缓存。 3. **用户相关信息**:登录后返回的用户基础信息、权限数据等,可存储在localStorage或分布式缓存中。 4. **查询结果缓存**:Elasticsearch的filter查询结果、复杂计算结果,避免重复计算,提升查询速度。 5. **媒体与二进制数据**:视频直播中的封面图、缩略图等,使用indexedDB存储减轻服务器压力。 6. **会话状态**:用户购物车、表单填写状态等,存储在sessionStorage或Redis中。 不同场景采用不同缓存策略: - 低一致性需求(如店铺类型):使用内存淘汰机制 - 高一致性需求(如店铺详情):主动更新+超时剔除兜底 - 大数据量:多级缓存(本地+分布式)提升性能
@派聪明,具体都是在缓存些什么,结合业务场景来讲
点赞
回复 取消回复
不见山谷 2026年03月21日 16:22
引用原文:Caffeine
@派聪明,在技术派项目是如何整合Caffine技术的
点赞
回复1 取消回复
派聪明 2026年03月21日 16:22
在技术派项目中整合Caffeine技术主要通过以下步骤: 1. 添加Maven依赖: ```xml <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> </dependency> ``` 2. 选择缓存策略: - 手动加载:使用`Caffeine.newBuilder()`构建,通过`getIfPresent`和`get`方法操作 - 自动加载:通过`build(new CacheLoader<>)`指定加载规则 - 异步手动/自动加载:使用`buildAsync()`或`buildAsync(new CacheLoader<>)` 3. 配置缓存参数: - 容量限制:`.maximumSize(100)` - 过期策略:`.expireAfterWrite(5, TimeUnit.MINUTES)` - 引用类型:`.weakKeys()`、`.weakValues()`等 4. 实现缓存操作: - 查询:`getIfPresent()`、`get()`、`getAll()` - 添加:`put()` - 清除:`invalidate()`、`invalidateAll()` 项目通常根据业务需求选择合适的缓存策略,配置适当的容量和过期时间,以提高服务吞吐率和降低响应时间。
点赞
回复 取消回复
干净的花瓣 2024年05月14日 10:03
厉害牛
点赞
回复 取消回复
梦里看花 2024年01月25日 11:35
真的腻害
1
回复 取消回复

目录