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

建设银行网站是多少一 建设茶叶网站前的市场分析

建设银行网站是多少,一 建设茶叶网站前的市场分析,接做网站的私活怎么报价,人才网招聘官方网1.什么是多级缓存 传统的缓存策略一般是请求到达Tomcat后#xff0c;先查询Redis#xff0c;如果未命中则查询数据库#xff0c;如图#xff1a; 存在下面的问题#xff1a; 请求要经过Tomcat处理#xff0c;Tomcat的性能成为整个系统的瓶颈 Redis缓存失效时#xff0…1.什么是多级缓存 传统的缓存策略一般是请求到达Tomcat后先查询Redis如果未命中则查询数据库如图 存在下面的问题 请求要经过Tomcat处理Tomcat的性能成为整个系统的瓶颈 Redis缓存失效时会对数据库产生冲击 多级缓存就是充分利用请求处理的每个环节分别添加缓存减轻Tomcat压力提升服务性能 浏览器访问静态资源时优先读取浏览器本地缓存访问非静态资源ajax查询数据时访问服务端请求到达Nginx后优先读取Nginx本地缓存如果Nginx本地缓存未命中则去直接查询Redis不经过Tomcat如果Redis查询未命中则查询Tomcat请求进入Tomcat后优先查询JVM进程缓存如果JVM进程缓存未命中则查询数据库 在多级缓存架构中Nginx内部需要编写本地缓存查询、Redis查询、Tomcat查询的业务逻辑因此这样的nginx服务不再是一个反向代理服务器而是一个编写业务的Web服务器了。 因此这样的业务Nginx服务也需要搭建集群来提高并发再有专门的nginx服务来做反向代理如图 另外我们的Tomcat服务将来也会部署为集群模式 可见多级缓存的关键有两个 一个是在nginx中编写业务实现nginx本地缓存、Redis、Tomcat的查询 另一个就是在Tomcat中实现JVM进程缓存 2. 初识Caffeine 缓存在日常开发中启动至关重要的作用由于是存储在内存中数据的读取速度是非常快的能大量减少对数据库的访问减少数据库的压力。我们把缓存分为两类 分布式缓存例如Redis 优点存储容量更大、可靠性更好、可以在集群间共享缺点访问缓存有网络开销场景缓存数据量较大、可靠性要求较高、需要在集群间共享 进程本地缓存例如HashMap、GuavaCache 优点读取本地内存没有网络开销速度更快缺点存储容量有限、可靠性较低、无法共享场景性能要求较高缓存数据量较小 利用Caffeine框架来实现JVM进程缓存。 Caffeine 是一个基于Java8开发的提供了近乎最佳命中率的高性能的本地缓存库。目前Spring内部的缓存使用的就是Caffeine。GitHub地址https://github.com/ben-manes/caffeine Caffeine的性能非常好下图是官方给出的性能对比 可以看到Caffeine的性能遥遥领先 缓存使用的基本API Test void testBasicOps() {// 构建cache对象CacheString, String cache Caffeine.newBuilder().build();// 存数据cache.put(gf, 迪丽热巴);// 取数据String gf cache.getIfPresent(gf);System.out.println(gf gf);// 取数据包含两个参数// 参数一缓存的key// 参数二Lambda表达式表达式参数就是缓存的key方法体是查询数据库的逻辑// 优先根据key查询JVM缓存如果未命中则执行参数二的Lambda表达式String defaultGF cache.get(defaultGF, key - {// 根据key去数据库查询数据return 柳岩;});System.out.println(defaultGF defaultGF); }Caffeine既然是缓存的一种肯定需要有缓存的清除策略不然的话内存总会有耗尽的时候。 Caffeine提供了三种缓存驱逐策略 基于容量设置缓存的数量上限 // 创建缓存对象 CacheString, String cache Caffeine.newBuilder().maximumSize(1) // 设置缓存大小上限为 1.build();基于时间设置缓存的有效时间 // 创建缓存对象 CacheString, String cache Caffeine.newBuilder()// 设置缓存有效期为 10 秒从最后一次写入开始计时 .expireAfterWrite(Duration.ofSeconds(10)) .build(); 基于引用设置缓存为软引用或弱引用利用GC来回收缓存数据。性能较差不建议使用。 注意在默认情况下当一个缓存元素过期的时候Caffeine不会自动立即将其清理和驱逐。而是在一次读或写操作后或者在空闲时间完成对失效数据的驱逐。 3. 实现JVM进程缓存 3.1. 需求 利用Caffeine实现下列需求 给根据id查询商品的业务添加缓存缓存未命中时查询数据库给根据id查询商品库存的业务添加缓存缓存未命中时查询数据库缓存初始大小为100缓存上限为10000 3.2. 实现 首先我们需要定义两个Caffeine的缓存对象分别保存商品、库存的缓存数据。 在item-service的com.dcxuexi.item.config包下定义CaffeineConfig类 package com.dcxuexi.item.config;import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; import com.dcxuexi.item.pojo.Item; import com.dcxuexi.item.pojo.ItemStock; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class CaffeineConfig {Beanpublic CacheLong, Item itemCache(){return Caffeine.newBuilder().initialCapacity(100).maximumSize(10_000).build();}Beanpublic CacheLong, ItemStock stockCache(){return Caffeine.newBuilder().initialCapacity(100).maximumSize(10_000).build();} }然后修改item-service中的com.dcxuexi.item.web包下的ItemController类添加缓存逻辑 RestController RequestMapping(item) public class ItemController {Autowiredprivate IItemService itemService;Autowiredprivate IItemStockService stockService;Autowiredprivate CacheLong, Item itemCache;Autowiredprivate CacheLong, ItemStock stockCache;// ...其它略GetMapping(/{id})public Item findById(PathVariable(id) Long id) {return itemCache.get(id, key - itemService.query().ne(status, 3).eq(id, key).one());}GetMapping(/stock/{id})public ItemStock findStockById(PathVariable(id) Long id) {return stockCache.get(id, key - stockService.getById(key));} }
http://www.pierceye.com/news/88005/

相关文章:

  • 福州做网站建设服务商wordpress制作的网站
  • 网站开发切换电脑版与手机版wordpress移动端导航菜单加文字
  • 网站建设的业务好做吗响应式网站开发流行吗
  • 网站建设用的软件怎么做返利网站
  • 自动化设计网站建设长沙市公司
  • 网站怎么申请域名多渠道分销系统
  • 建设网站软件wordpress 申请
  • 响应式网站软件php 网站开发框架ap
  • tk免费域名注册网站电子商务网站建设 李洪心
  • 搜狐网站建设设计wordpress 调用描述
  • 类似饿了么的网站怎么做网络推广与优化
  • 建设银行网站查余额查询网站维护主要需要会什么
  • 佛山多语网站制作dw建设网站步骤
  • 安网站建设公司秦皇岛生态文明建设
  • 雄安建设工程信息网站销售管理系统课程设计
  • 网站运营专员岗位职责软件开发平台设计
  • 阳江商城网站开发设计网络售后服务
  • 房产中介网站开发费用建设银行有招投标网站吗
  • 广州网站优化地址网站设置在设备之间共享怎么开启
  • wordpress创建分站点西宁网站运营公司
  • 高明网站建设公司wordpress alipay
  • 如何注册网站域名淘客app
  • 建立网站的阶段商务厅网站建设意见
  • 申请注册网站域名.商城男女做暖暖的网站大全
  • 怎么做售房网站自己做网站需要学些什么
  • proxy网站云南手机网站开发
  • 建设工程图审管理信息系统网站什么语言建手机网站
  • 东莞装饰网站建设做房间预定网站需要什么软件
  • 网络私人定制网站广州专业做网页的公司
  • 怎么上传自己的网站北京网站排名制作