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

东莞网站建设知名公司排名dux wordpress

东莞网站建设知名公司排名,dux wordpress,有没有专门做素食的美食网站,网站建设及售后服务的说明书本文将详细介绍如何使用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.yayakq.cn/news/681800/

相关文章:

  • 网站建设的威胁如何进行网站制作
  • 爱站工具有加超人下拉系统only网站建设分析
  • 网站建设比较牛的企业网站 设计公司 温州
  • 购物网网站建设无锡网站营销公司哪家好
  • 360搜索怎么做网站优化长子营网站建设
  • u网站建设做网站所具备的的条件
  • 站点推广是什么意思软装设计包含哪些项目
  • 四方区企业型网站建设顺德网站建设要多少钱
  • 大连微信网站投资网站建设及推广
  • 响应式网站和普通网站微信软文推广怎么做
  • 合肥市建设建筑网站wordpress忘记后台账号
  • 怎么做刷会员网站网站开发与推广就业
  • 网站制作 徐州做worksheet的网站
  • 泉州茶叶网站建设北京网站设计培训机构
  • 骏域网站建设专家电脑版wordpress5.2中文
  • app费用seo是指搜索引擎营销
  • 网站结构组成部分有那些李沧网站建设公司
  • 上海网站建设运营站霸网络ps做网站大小
  • 郑州企业网站排名汶上外贸网站建设
  • 上海网络推广公司外包seow是什么意思
  • 机关网站模板太原建站方法
  • 网站404页面制作关于书店网站开发实例的书
  • 福州企业网站建设专业服务网站用什么框架
  • 做里番网站犯法吗wordpress关键词内链插件
  • 关于旅游电子商务网站建设论文wordpress不同页面广告
  • 快速搭建网站demowordpress 个性博客主题
  • 购物网站开发问题百度推广优化方案
  • 交易所开发深圳网站制作专门做二手书的网站
  • 手机阅读网站开发原因郑州做旅游网站
  • 深圳市建设工程造价站官网郑州正岩建设集团网站