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

wordpress多站点使用期限插件企业培训系统app

wordpress多站点使用期限插件,企业培训系统app,马云做直销网站吗,大连网站制作姚喜运本文将详细介绍如何使用CacheFrontend和Caffeine来实现二级缓存。 1. 简介 CacheFrontend: 是一种用于缓存的前端组件或服务。通俗的讲:该接口可以实现本地缓存与redis自动同步,如果本地缓存(JVM级)有数据,则直接从本…

本文将详细介绍如何使用CacheFrontend和Caffeine来实现二级缓存。

1. 简介

CacheFrontend: 是一种用于缓存的前端组件或服务。通俗的讲:该接口可以实现本地缓存与redis自动同步,如果本地缓存(JVM级)有数据,则直接从本地缓存中返回数据。否则从redis获取。

CacheFrontend的工作方式通常涉及以下两个方面:

  • 数据存储:CacheFrontend会将从后端(Redis)获取的数据存储在本地缓存中。这样,在后续请求中,如果相同的数据被请求,CacheFrontend可以直接从本地缓存中返回,而无需再次访问后端存储(Redis)。这减少了对后端存储的访问次数,提高了响应速度。

  • 数据更新和失效:当后端存储中的数据发生变化时,CacheFrontend需要相应地更新本地缓存中的数据。它可以通过主动监测后端存储的变化。

通过使用CacheFrontend,应用程序可以减轻后端存储的负载,提高系统的性能和可扩展性,从而改善用户体验。

CacheFrontend是由 Lettuce 提供,Lettuce 提供了 ClientSideCaching 实现,在该实现类中接受一个CacheAccessor缓存访问器。我们可以根据具体需要实现自己的缓存访问器。本文将自定义CacheAccessor结合Caffeine实现缓存策略。

2. 实战案例

2.1 依赖管理

<!--高性能本地缓存实现-->
<dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>caffeine</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2.2 配置文件

spring:redis:host: localhostpassword: xxxooodatabase: 10port: 6379

2.2 配置

本地缓存配置
@Bean
public Cache<String, String> localCache() {return  Caffeine.newBuilder()// 初始容量.initialCapacity(100).maximumSize(1000).build() ;
}
RedisClient配置
@Bean
public RedisClient redisClient(RedisProperties props) {RedisURI clientResources = RedisURI.Builder.redis(props.getHost(), props.getPort()).withPassword(props.getPassword().toCharArray()).withDatabase(props.getDatabase()).build() ;RedisClient client = RedisClient.create(clientResources) ;return client ;
}

RedisProperties是系统内部自动注册的Bean。

缓存前端配置CacheFrontend
@Beanpublic CacheFrontend<String, String> cacheFrontend(RedisClient redisClient, Cache<String, String> localCache) {StatefulRedisConnection<String, String> connection = redisClient.connect() ;// 添加监听器,当缓存失效后会被监听到。connection.addListener(new PushListener() {@Overridepublic void onPushMessage(PushMessage message) {String type = message.getType() ;if ("invalidate".equals(type)) {System.out.println("...") ;}List<Object> contents = message.getContent() ;Object content = contents.get(0);if (content instanceof ByteBuffer) {ByteBuffer buf = (ByteBuffer) content ;System.out.printf("response content: %s%n", StringCodec.UTF8.decodeValue(buf)) ;}}}) ;// 缓存访问器CacheAccessor<String, String> cacheAccessor = new CacheAccessor<String, String>() {@Overridepublic String get(String key) {@NullableString present = localCache.getIfPresent(key) ;System.out.printf("get operator: %s%n", present) ;return present ;}@Overridepublic void put(String key, String value) {localCache.put(key, value) ;System.out.printf("put operator: key = %s, value = %s%n", key, value) ;}@Overridepublic void evict(String key) {localCache.invalidate(key) ;System.out.printf("evict operator: %s%n", key) ;}};CacheFrontend<String, String> frontend = ClientSideCaching.enable(cacheAccessor, connection,TrackingArgs.Builder.enabled()) ;return frontend ;}

总结:通过本地缓存和Redis缓存可以带来诸多好处,如提高系统性能、减轻数据库压力、支持高并发等。通过合理配置和管理本地缓存与Redis缓存,可以优化应用程序的性能,提高系统的稳定性和可用性。在实际应用中,根据业务需求选择合适的缓存策略和数据结构,并进行持续的性能监控和调优,是确保系统高效运行的关键。

http://www.hengruixuexiao.com/news/24078.html

相关文章:

  • 凡科网做的网站怎么样搜狗权重查询
  • 杭州企业建站山西优化公司
  • 移动端网站如何做导出功能百度seo快速排名优化软件
  • 网页生成app在线甘肃seo网站
  • qq网站登录纹绣培训班一般价格多少
  • 糕点网站策划书百度电话怎么转人工
  • 内力网站建设搜狗推广效果好吗
  • 深圳集团网站建设推广app最快的方法
  • 更新网站 是否要重启iis中央新闻频道直播今天
  • 做网站为何要续费创建一个网站需要什么
  • 最新手机资讯武汉seo报价
  • 网站建设要用H5吗今日发生的重大新闻
  • 全国网站建设公司在哪里打广告效果最好
  • 新网站建设的感想产品seo怎么优化
  • 无锡鑫融建设网站seo优
  • 企业网站推广形式有网络优化软件有哪些
  • 做qq头像的网站有哪些枸橼酸西地那非片是什么
  • b2c商城网站模版临沂今日头条新闻最新
  • 常见的网页布局有哪些整站关键词排名优化
  • 湖南seo快速排名seo职业培训学校
  • 澳环网站设计微信软文范例100字
  • 威海做网站推广的企业百度资源搜索平台官网
  • 杭州的做网站公司百度下载安装官方下载
  • 新媒体营销成功案例广州网站排名专业乐云seo
  • 重庆做网站建设的公司百度登录页
  • 在线编辑图片的网站有哪些seo关键词优化平台
  • 基层政府网站建设百度搜索名字排名优化
  • 厦门的服装商城网站建设域名注册服务机构
  • 自然志wordpress下载seo常用工具有哪些
  • 互联网保险模式开封seo推广