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

营销型网站=企业登记代理手机端网站开发多少钱

营销型网站=企业登记代理,手机端网站开发多少钱,网站建设期间工作总结,自己做网站如何放置在服务器中在构建大规模应用时#xff0c;缓存系统是提高性能的关键因素之一。为了更有效地利用缓存#xff0c;我们可以设计一个基于Spring Boot的多级缓存系统#xff0c;结合本地内存缓存#xff08;如Caffeine#xff09;和分布式缓存#xff08;如Redis#xff09;。以下是一…在构建大规模应用时缓存系统是提高性能的关键因素之一。为了更有效地利用缓存我们可以设计一个基于Spring Boot的多级缓存系统结合本地内存缓存如Caffeine和分布式缓存如Redis。以下是一个简单的多级缓存系统的设计概要 1. 选择缓存框架 在Spring Boot中我们可以选择合适的缓存框架比如Ehcache、Redis、Caffeine等。可以通过在pom.xml中引入相应的依赖来集成这些框架。 2. 配置缓存 在application.properties或application.yml中配置缓存的相关属性如缓存类型、大小、过期时间等。 3. 定义缓存管理类 创建一个缓存管理类用于配置多级缓存指定各级缓存的顺序和策略。 package com.nbsaas.boot.config;import com.github.benmanes.caffeine.cache.CaffeineSpec; import com.nbsaas.boot.cache.MultiLevelCacheManager; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.caffeine.CaffeineCacheManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.data.redis.cache.RedisCacheConfiguration; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializationContext; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer;import java.time.Duration;Configuration EnableCaching public class CacheConfig {PrimaryOrder(Ordered.HIGHEST_PRECEDENCE)Beanpublic CacheManager cacheManager(CaffeineCacheManager caffeineCacheManager,RedisCacheManager redisCacheManager) {MultiLevelCacheManager multiLevelCacheManager new MultiLevelCacheManager();multiLevelCacheManager.addCache(caffeineCacheManager);multiLevelCacheManager.addCache(redisCacheManager);return multiLevelCacheManager;}Beanpublic CaffeineCacheManager caffeineCacheManager() {// 配置Caffeine缓存CaffeineCacheManager cacheManager new CaffeineCacheManager(caffeineCache,yourCacheName);cacheManager.setCaffeineSpec(caffeineSpec());return cacheManager;}Order(Ordered.LOWEST_PRECEDENCE)Beanpublic RedisCacheManager redisCacheManager(RedisConnectionFactory factory) {RedisSerializerString redisSerializer new StringRedisSerializer();GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer new GenericJackson2JsonRedisSerializer();// 配置序列化解决乱码的问题,过期时间600秒RedisCacheConfiguration config RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofSeconds(600)).serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer)).serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer)).disableCachingNullValues();return RedisCacheManager.builder(factory).cacheDefaults(config).build();}private CaffeineSpec caffeineSpec() {// 配置Caffeine缓存规格return CaffeineSpec.parse(maximumSize100);} } 4. 实现缓存管理器和缓存 实现MultiLevelCacheManager类和MultiLevelCache类用于管理和协调多个缓存层次。 package com.nbsaas.boot.cache;import org.springframework.cache.Cache;import java.util.ArrayList; import java.util.Collection; import java.util.concurrent.Callable;public class MultiLevelCache implements Cache {private final ArrayListCache caches new ArrayList();public void addCache(Cache cache) {caches.add(cache);}Overridepublic String getName() {return multiLevelCache;}Overridepublic Object getNativeCache() {return this;}Overridepublic ValueWrapper get(Object key) {for (Cache cache : caches) {ValueWrapper wrapper cache.get(key);if (wrapper ! null) {return wrapper;}}return null;}Overridepublic T T get(Object key, ClassT type) {ValueWrapper wrapper get(key);return (wrapper ! null) ? (T) wrapper.get() : null;}Overridepublic T T get(Object key, CallableT valueLoader) {ValueWrapper wrapper get(key);T obj (wrapper ! null) ? (T) wrapper.get() : null;return obj;}Overridepublic void put(Object key, Object value) {for (Cache cache : caches) {cache.put(key, value);}}Overridepublic ValueWrapper putIfAbsent(Object key, Object value) {ValueWrapper wrapper get(key);if (wrapper null) {put(key, value);return null;}return wrapper;}Overridepublic void evict(Object key) {for (Cache cache : caches) {cache.evict(key);}}Overridepublic boolean evictIfPresent(Object key) {return Cache.super.evictIfPresent(key);}Overridepublic void clear() {for (Cache cache : caches) {cache.clear();}}Overridepublic boolean invalidate() {boolean resulttrue;for (Cache cache : caches) {result cache.invalidate();}return result;} } package com.nbsaas.boot.cache;import org.springframework.cache.Cache; import org.springframework.cache.CacheManager;import java.util.ArrayList; import java.util.Collection;public class MultiLevelCacheManager implements CacheManager {private final ArrayListCacheManager cacheManagers new ArrayList();public static final int REDIS_CACHE_EXPIRATION 600; // Redis缓存过期时间秒public void addCache(CacheManager cacheManager) {cacheManagers.add(cacheManager);}Overridepublic Cache getCache(String name) {MultiLevelCache multiLevelCache new MultiLevelCache();for (CacheManager cacheManager : cacheManagers) {Cache cache cacheManager.getCache(name);if (cache ! null) {multiLevelCache.addCache(cache);}}return multiLevelCache;}Overridepublic CollectionString getCacheNames() {CollectionString cacheNames new ArrayList();for (CacheManager cacheManager : cacheManagers) {cacheNames.addAll(cacheManager.getCacheNames());}return cacheNames;} } 5. 使用缓存 在Service层或方法上使用Cacheable、CachePut、CacheEvict等注解来标记需要缓存的方法。 Service public class MyService {Cacheable(value caffeineCache, key #id)public String getCachedData(String id) {// 查询数据库或其他业务逻辑return Cached Data for id;} } 通过以上步骤我们成功建立了一个基于Spring Boot的多级缓存系统。这个设计支持在本地内存和分布式缓存之间实现多级缓存从而更好地满足不同场景下的性能需求。在实际应用中可以根据具体需求调整缓存的层次和配置以达到最佳性能和资源利用率。
http://www.w-s-a.com/news/44983/

相关文章:

  • 系部网站建设中期检查表创建网站的公司
  • 西宁网站建设优化重庆企业的网站建设
  • 贝壳企业网站管理系统徽与章网站建设宗旨
  • 郑州网站模板动漫设计与制作设计课程
  • 在线制作网站的工具岳阳网站设计改版
  • 网站建设需要汇报哪些内容前端开发的工作内容
  • 无锡阿凡达网站建设美团app开发公司
  • 个性化企业网站制作公司深圳高端网站定制公
  • 专业深圳网站定制开发企业网站开发 流程
  • 网站建设推广的软文php网站平台
  • 如何做代刷网站长外贸网站个性设计
  • 合同网站开发 设计 后期维护如何搭建海外网络
  • 提供网站建设服务优化大师哪个好
  • 军队营房基础建设网站哦咪咖网站建设
  • fifa17做任务网站app下载免费安装
  • 网站开发用哪些技术seo是什么意思为什么要做seo
  • 网站会动的页面怎么做的与网站建设有关的招标文件
  • 公司网站如何做seowordpress付费资源
  • 福田做商城网站建设哪家公司便宜点WordPress安装子目录
  • 南京建设交易中心网站wordpress 拼车
  • 上海今天发生的重大新闻5条河南网站seo费用
  • 广东深圳最新情况临安网站seo
  • 华为快速建站女人做春梦网站
  • 建外贸网站费用手机排行榜zol
  • 长治网站制作的网站做网站要什么知识条件
  • discuz 做门户网站wordpress怎么添加图片不显示图片
  • 东营网站建设方案范文百度应用搜索
  • 网站 常见推广js代码放wordpress哪里
  • 靖江网站开发徐州住房和城乡建设局网站
  • 南宁网站建设公司如何为老板打造网站赚钱的wordpress optimizer