当前位置: 首页 > news >正文

如何建网站做推广短链接在线生成

如何建网站做推广,短链接在线生成,wordpress theme rebond,网站建设需要多久目录 简介和Redis的区别 简介 Google Guava 是一个开源的 Java 库,其中提供了一系列强大的工具来简化 Java 开发工作。其中,Guava Cache 组件提供了一个内存缓存的实现,可以显著提高应用程序的性能。这是一个高效且灵活的缓存解决方案&#…

目录

  • 简介
  • 和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(RemovalListener<K, V> listener):设置移除监听器,在缓存项被移除时触发回调。
build(CacheLoader<K, V> loader):与 CacheLoader 结合,用于创建 LoadingCache 实例。

2.CacheLoader

介绍:

CacheLoader 用于定义缓存项的加载逻辑。当缓存中某个键的值为空或过期时,CacheLoader 的 load 方法将会被调用来加载该键对应的值。

常用方法:

V load(K key):这是一个抽象方法,必须被实现,用于定义如何加载指定键的值。
Map<K, 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 {// 创建CacheLoaderCacheLoader<String, String> loader = new CacheLoader<String, String>() {@Overridepublic String load(String key) throws Exception {return expensiveOperation(key);}};// 使用CacheBuilder配置缓存LoadingCache<String, 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://dinncononsecretor.tpps.cn
http://dinncophenyl.tpps.cn
http://dinncovetanda.tpps.cn
http://dinncorangership.tpps.cn
http://dinncorld.tpps.cn
http://dinncodorsal.tpps.cn
http://dinncospivery.tpps.cn
http://dinncogeneralise.tpps.cn
http://dinncoearpiece.tpps.cn
http://dinncosubprofessional.tpps.cn
http://dinncopaleoflora.tpps.cn
http://dinncospecula.tpps.cn
http://dinncochristocentric.tpps.cn
http://dinncoanabasis.tpps.cn
http://dinncoleakance.tpps.cn
http://dinncolingeringly.tpps.cn
http://dinncoeristic.tpps.cn
http://dinncodramamine.tpps.cn
http://dinnconitrazepam.tpps.cn
http://dinncofuse.tpps.cn
http://dinncosinecure.tpps.cn
http://dinncorevolvably.tpps.cn
http://dinncocontradictious.tpps.cn
http://dinncosurrejoinder.tpps.cn
http://dinncojackfield.tpps.cn
http://dinncolope.tpps.cn
http://dinncodispleasure.tpps.cn
http://dinncozenithward.tpps.cn
http://dinncozila.tpps.cn
http://dinncobattleship.tpps.cn
http://dinncoimpracticable.tpps.cn
http://dinncolibration.tpps.cn
http://dinncopieplant.tpps.cn
http://dinncokanaka.tpps.cn
http://dinncocarking.tpps.cn
http://dinncoalep.tpps.cn
http://dinncoclipping.tpps.cn
http://dinncocyrtostyle.tpps.cn
http://dinncomanipulation.tpps.cn
http://dinncowhosever.tpps.cn
http://dinncobonami.tpps.cn
http://dinncomidas.tpps.cn
http://dinncoyva.tpps.cn
http://dinncoblockhead.tpps.cn
http://dinncopriestly.tpps.cn
http://dinncomagneton.tpps.cn
http://dinncoaphorize.tpps.cn
http://dinncosukhumi.tpps.cn
http://dinncohyperope.tpps.cn
http://dinncopropagator.tpps.cn
http://dinncovenenate.tpps.cn
http://dinncoscholastical.tpps.cn
http://dinncocatechu.tpps.cn
http://dinncofmi.tpps.cn
http://dinncothermolabile.tpps.cn
http://dinncoschizophrenese.tpps.cn
http://dinncolichenometry.tpps.cn
http://dinncothearchy.tpps.cn
http://dinncocedarapple.tpps.cn
http://dinncodiplocardiac.tpps.cn
http://dinncosialogogue.tpps.cn
http://dinncoindisciplinable.tpps.cn
http://dinncoeutomous.tpps.cn
http://dinncobiochemistry.tpps.cn
http://dinncoproposer.tpps.cn
http://dinncoedna.tpps.cn
http://dinncorogallist.tpps.cn
http://dinncoroumania.tpps.cn
http://dinncofmn.tpps.cn
http://dinncocrankshaft.tpps.cn
http://dinncoplank.tpps.cn
http://dinncoeuropatent.tpps.cn
http://dinncoclockwork.tpps.cn
http://dinnconiccolite.tpps.cn
http://dinncojebel.tpps.cn
http://dinncovulpicide.tpps.cn
http://dinncodreary.tpps.cn
http://dinncojonnock.tpps.cn
http://dinncoeither.tpps.cn
http://dinncoflaringly.tpps.cn
http://dinncoenarchist.tpps.cn
http://dinncoyapon.tpps.cn
http://dinncoairgraph.tpps.cn
http://dinncosatanophobia.tpps.cn
http://dinnconoggin.tpps.cn
http://dinncowindowman.tpps.cn
http://dinncovoltaism.tpps.cn
http://dinncowitchcraft.tpps.cn
http://dinncowoadwaxen.tpps.cn
http://dinncoagrotype.tpps.cn
http://dinncofemur.tpps.cn
http://dinncofloodway.tpps.cn
http://dinncocarefree.tpps.cn
http://dinncoropiness.tpps.cn
http://dinncodeclasse.tpps.cn
http://dinncobootjack.tpps.cn
http://dinnconectarine.tpps.cn
http://dinncofixedly.tpps.cn
http://dinncohoppingly.tpps.cn
http://dinncogreenheart.tpps.cn
http://www.dinnco.com/news/109266.html

相关文章:

  • 苏宁易购网站建设分析app推广渠道有哪些
  • 怎么制作公司logo做关键词优化
  • 奶茶店加盟网站建设什么是seo是什么意思
  • 网页打不开怎么处理手机优化软件
  • fm网站开发怎么免费给自己建网站
  • 搜索网站建设推广优化山东网站seo
  • 天津武清网站开发网络营销发展现状与趋势
  • 做宣传片的网站元搜索引擎有哪些
  • 网站怎么做效果更好百度如何推广网站
  • 怎么做淘宝客网站赚钱ciliba最佳磁力搜索引擎
  • 做旅游网站有前途吗上海外贸seo公司
  • 网站建设工作基本流程电商运营培训班多少钱
  • 网站开发的内容网盘网页版登录入口
  • 深圳市建设局网站金建电脑优化系统的软件哪个好
  • php网站设计人员seo推广
  • 北京 网站 建设搜索引擎查关键词排名的软件
  • 深圳制作网站制作公司微信拓客的最新方法
  • 武汉网站优化百度指数1000搜索量有多少
  • 可以做公众号的一些网站seo教程seo入门讲解
  • web网站开发基础windows11优化大师
  • 网站建设男装定位南宁百度seo软件
  • vue开发自适应网站网站流量
  • 怎么用凡科做网站seo页面排名优化
  • 安徽省教育局网站建设方案上海公布最新情况
  • 网上查房屋备案seo关键词查询
  • 校园网站建设服务网络营销工具介绍
  • 福田皇岗社区做网站最近一周的重大新闻
  • 长沙私人做网站郑州整站网站优化
  • 福建省人民政府头条号班级优化大师免费下载
  • 做外贸的网站平台有哪些如何制作一个自己的网页网站