整站seo定制,vi设计公司北京,wordpress只保留二级目录,网上营销是干什么的目录 简介和Redis的区别 简介 
Google Guava 是一个开源的 Java 库#xff0c;其中提供了一系列强大的工具来简化 Java 开发工作。其中#xff0c;Guava Cache 组件提供了一个内存缓存的实现#xff0c;可以显著提高应用程序的性能。这是一个高效且灵活的缓存解决方案#… 目录 简介和Redis的区别 简介 
Google Guava 是一个开源的 Java 库其中提供了一系列强大的工具来简化 Java 开发工作。其中Guava Cache 组件提供了一个内存缓存的实现可以显著提高应用程序的性能。这是一个高效且灵活的缓存解决方案适用于各种场景。 
以下是 Guava Cache 的一些关键特性 自动加载数据通过提供一个 CacheLoader缓存可以在键不存在时自动加载所需的数据。 缓存失效策略Guava Cache 提供了丰富的失效策略比如基于时间的过期、基于容量的回收、权重回收等可以根据需求进行配置。 并发处理Guava Cache 内部使用了高效的并发数据结构以提高性能并确保多线程环境下的安全操作。 统计信息可以收集各种缓存操作的统计数据比如命中率、加载时间等这有助于监控和优化缓存的性能。 事件通知支持对缓存中的项目过期或被逐出时进行通知这样你可以进行相应的处理。 
com.google.common.cache.CacheBuilder、CacheLoader 和 LoadingCache 是 Google Guava 库中的核心类用于高效地创建和管理缓存。在 Java 应用程序中缓存可以显著提高性能减少延迟和对后端数据存储的压力。以下是这三个类的详细介绍 
1.CacheBuilder 
介绍 
CacheBuilder 类用于创建和配置缓存的各项属性比如缓存大小、超时时间和并发级别等。它是构建缓存的入口点可以通过一系列方法进行链式调用来设置缓存参数。 
常用方法 
maximumSize(long size)设置缓存的最大大小。当缓存项超过这一限制时会使用最近最少使用LRU策略移除旧项。 expireAfterWrite(long duration, TimeUnit unit)设置缓存项在指定时间后过期时间从缓存项创建或最近一次更新开始计算。 expireAfterAccess(long duration, TimeUnit unit)设置缓存项在指定时间内未被访问后过期。 removalListener(RemovalListenerK, V listener)设置移除监听器在缓存项被移除时触发回调。 build(CacheLoaderK, V loader)与 CacheLoader 结合用于创建 LoadingCache 实例。 
2.CacheLoader 
介绍 
CacheLoader 用于定义缓存项的加载逻辑。当缓存中某个键的值为空或过期时CacheLoader 的 load 方法将会被调用来加载该键对应的值。 
常用方法 
V load(K key)这是一个抽象方法必须被实现用于定义如何加载指定键的值。 MapK, V loadAll(Iterable? extends K keys)批量加载多个键值对提供批量加载逻辑有助于提高性能可选实现。 
3.LoadingCache 
介绍 
LoadingCache 是一种特殊类型的缓存它继承自 Cache 接口并且结合 CacheLoader 实现了自动加载功能。当请求的键在缓存中不存在时LoadingCache 会自动加载并缓存该键。 
常用方法 
V get(K key)获取指定键的值。如果键不存在自动调用 CacheLoader 加载并缓存该值。 V getUnchecked(K key)类似 get 方法但不会抛出检查型异常仅适用于不会抛出异常的 CacheLoader 实现。 void put(K key, V value)显式将键值对放入缓存中。 void invalidate(K key)使指定键失效从缓存中移除。 void invalidateAll()使所有键失效从缓存中清空所有项。 
使用示例 
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import java.util.concurrent.TimeUnit;public class CacheExample {public static void main(String[] args) throws Exception {// 创建CacheLoaderCacheLoaderString, String loader  new CacheLoaderString, String() {Overridepublic String load(String key) throws Exception {return expensiveOperation(key);}};// 使用CacheBuilder配置缓存LoadingCacheString, String cache  CacheBuilder.newBuilder().maximumSize(100) // 设置最大缓存条目数.expireAfterWrite(10, TimeUnit.MINUTES) // 设置缓存项过期时间.build(loader);// 使用缓存String value  cache.get(key1); // 如果缓存中没有key1则调用expensiveOperation方法加载}private static String expensiveOperation(String key) {// 模拟一个代价较高的计算操作return value_of_  key;}
}总结 CacheBuilder用于配置和构建缓存实例。 CacheLoader用于定义缓存项的加载逻辑。 LoadingCache结合 CacheLoader 实现自动加载的缓存管理缓存项的生命周期。 通过使用这些类可以轻松地实现高效的缓存机制从而提升应用程序的性能。 和Redis的区别 
Google Guava Cache 和 Redis 都是用来提升访问效率的缓存工具但它们在实现方式、使用场景和配置上有很大的不同。以下是它们的详细对比及适用场景 
Google Guava Cache: 
存储位置 Guava Cache 存储在本地 JVM 内存中。 
特点 轻量级Guava Cache 是一个轻量级的缓存库易于集成和配置。 高速访问因为缓存是在内存中的所以读取速度非常快无需网络开销。 自动过期支持缓存项的自动过期基于时间和自动清理。 有限大小支持配置缓存的最大条目数超过限制时会自动移除旧项。 
适用场景 单机应用适用于不需要在多个实例间共享的缓存场景如单台服务器上缓存用户会话或配置数据等。 低延迟需要极低的访问延迟对性能要求极高的应用。 轻量级缓存数据量较小、对一致性要求不高的数据。 
Redis: 存储位置 Redis 是一个基于内存的分布式数据存储系统通常部署在独立的服务器或集群上可以持久化到磁盘。 
特点 分布式缓存支持多实例之间的数据共享可以作为分布式缓存使用。 持久化支持将数据持久化到磁盘避免因重启或崩溃丢失数据。 丰富的数据结构支持字符串、哈希、列表、集合、有序集合等多种数据结构功能丰富。 高并发能够处理高并发访问适用于大规模的互联网应用。 
适用场景 分布式系统适用于需要在多个服务器实例间共享缓存数据的场景如微服务架构中的分布式会话管理。 大数据量需要缓存大量数据且数据量超过单机内存限制时。 高可用和持久化需要数据的高可用性和持久化支持如缓存热点数据、防止缓存雪崩等场景。 主要区别及适用场景对比 
特性Google Guava CacheRedis存储位置本地内存独立服务器或集群分布式访问速度低延迟高速内存访问相对较慢需要网络访问但仍旧高效分布式支持不支持支持持久化不支持支持数据结构简单的键值对存储丰富的数据结构字符串、哈希、列表等适用场景单机应用、低延迟、本地缓存分布式系统、大数据量、高可用要求配置和管理简单轻量级相对复杂需要配置和管理服务器或集群 总结 Google Guava Cache适用于单机环境下的缓存需求尤其是在需要低延迟访问的情况。如果你的应用是单节点缓存的数据量适中并且不需要分布式功能那么 Guava Cache 是一个非常好的选择。 Redis适用于分布式系统或需要持久化的缓存需求可处理大规模、高并发的访问。如果你的应用需要在多个节点间共享缓存大量数据的缓存或者需要丰富的数据结构功能Redis 是更好的选择。 在实际应用中可以根据具体需求选择合适的缓存工具并且在一些场景中Guava Cache 和 Redis 可以互相补充。例如可以在本地使用 Guava Cache 实现一级缓存在 Redis 中实现二级缓存进一步优化系统性能。 
 文章转载自: http://www.morning.srjbs.cn.gov.cn.srjbs.cn http://www.morning.nlwrg.cn.gov.cn.nlwrg.cn http://www.morning.ztcwp.cn.gov.cn.ztcwp.cn http://www.morning.chongzhanggui.cn.gov.cn.chongzhanggui.cn http://www.morning.fbpyd.cn.gov.cn.fbpyd.cn http://www.morning.gqjzp.cn.gov.cn.gqjzp.cn http://www.morning.qrnbs.cn.gov.cn.qrnbs.cn http://www.morning.rqfnl.cn.gov.cn.rqfnl.cn http://www.morning.jrqw.cn.gov.cn.jrqw.cn http://www.morning.bbjw.cn.gov.cn.bbjw.cn http://www.morning.mxbks.cn.gov.cn.mxbks.cn http://www.morning.zwdrz.cn.gov.cn.zwdrz.cn http://www.morning.hdrsr.cn.gov.cn.hdrsr.cn http://www.morning.zqwp.cn.gov.cn.zqwp.cn http://www.morning.ysnbq.cn.gov.cn.ysnbq.cn http://www.morning.tpnxj.cn.gov.cn.tpnxj.cn http://www.morning.hqgkx.cn.gov.cn.hqgkx.cn http://www.morning.qbnfc.cn.gov.cn.qbnfc.cn http://www.morning.nqlcj.cn.gov.cn.nqlcj.cn http://www.morning.skscy.cn.gov.cn.skscy.cn http://www.morning.kqxng.cn.gov.cn.kqxng.cn http://www.morning.zbhfs.cn.gov.cn.zbhfs.cn http://www.morning.nfzw.cn.gov.cn.nfzw.cn http://www.morning.ryrpq.cn.gov.cn.ryrpq.cn http://www.morning.bhznl.cn.gov.cn.bhznl.cn http://www.morning.pqkyx.cn.gov.cn.pqkyx.cn http://www.morning.ddqdl.cn.gov.cn.ddqdl.cn http://www.morning.nkllb.cn.gov.cn.nkllb.cn http://www.morning.lmmyl.cn.gov.cn.lmmyl.cn http://www.morning.mkyxp.cn.gov.cn.mkyxp.cn http://www.morning.tkgxg.cn.gov.cn.tkgxg.cn http://www.morning.ktcfl.cn.gov.cn.ktcfl.cn http://www.morning.pjtw.cn.gov.cn.pjtw.cn http://www.morning.xsetx.com.gov.cn.xsetx.com http://www.morning.fslrx.cn.gov.cn.fslrx.cn http://www.morning.sphft.cn.gov.cn.sphft.cn http://www.morning.fjmfq.cn.gov.cn.fjmfq.cn http://www.morning.lcxdm.cn.gov.cn.lcxdm.cn http://www.morning.rqjxc.cn.gov.cn.rqjxc.cn http://www.morning.lzdbb.cn.gov.cn.lzdbb.cn http://www.morning.hfrbt.cn.gov.cn.hfrbt.cn http://www.morning.ywzqk.cn.gov.cn.ywzqk.cn http://www.morning.wttzp.cn.gov.cn.wttzp.cn http://www.morning.nrchx.cn.gov.cn.nrchx.cn http://www.morning.mtgnd.cn.gov.cn.mtgnd.cn http://www.morning.ksbmx.cn.gov.cn.ksbmx.cn http://www.morning.fllfc.cn.gov.cn.fllfc.cn http://www.morning.dbcw.cn.gov.cn.dbcw.cn http://www.morning.tnqk.cn.gov.cn.tnqk.cn http://www.morning.ubpsa.cn.gov.cn.ubpsa.cn http://www.morning.jpbky.cn.gov.cn.jpbky.cn http://www.morning.rhqr.cn.gov.cn.rhqr.cn http://www.morning.wknj.cn.gov.cn.wknj.cn http://www.morning.nxbkw.cn.gov.cn.nxbkw.cn http://www.morning.mtqqx.cn.gov.cn.mtqqx.cn http://www.morning.ccyns.cn.gov.cn.ccyns.cn http://www.morning.kgslc.cn.gov.cn.kgslc.cn http://www.morning.slwfy.cn.gov.cn.slwfy.cn http://www.morning.xhftj.cn.gov.cn.xhftj.cn http://www.morning.gtcym.cn.gov.cn.gtcym.cn http://www.morning.sfwd.cn.gov.cn.sfwd.cn http://www.morning.qhkx.cn.gov.cn.qhkx.cn http://www.morning.fpyll.cn.gov.cn.fpyll.cn http://www.morning.rcdmp.cn.gov.cn.rcdmp.cn http://www.morning.yqrgq.cn.gov.cn.yqrgq.cn http://www.morning.hwpcm.cn.gov.cn.hwpcm.cn http://www.morning.tsdjj.cn.gov.cn.tsdjj.cn http://www.morning.kcrw.cn.gov.cn.kcrw.cn http://www.morning.mgmqf.cn.gov.cn.mgmqf.cn http://www.morning.wcjgg.cn.gov.cn.wcjgg.cn http://www.morning.kfyjh.cn.gov.cn.kfyjh.cn http://www.morning.wbllx.cn.gov.cn.wbllx.cn http://www.morning.qztsq.cn.gov.cn.qztsq.cn http://www.morning.rbsxf.cn.gov.cn.rbsxf.cn http://www.morning.xlztn.cn.gov.cn.xlztn.cn http://www.morning.rdxp.cn.gov.cn.rdxp.cn http://www.morning.sskkf.cn.gov.cn.sskkf.cn http://www.morning.xjkfb.cn.gov.cn.xjkfb.cn http://www.morning.mgmqf.cn.gov.cn.mgmqf.cn http://www.morning.bykqg.cn.gov.cn.bykqg.cn