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

太原建设网站的公司圣都家装公司简介

太原建设网站的公司,圣都家装公司简介,网页制作计算机培训文案,温州的网站建设公司缓存是分布式系统开发中的常见技术#xff0c;在分布式系统中的缓存#xff0c;不止 Redis、Memcached 等后端存储#xff1b;在前端页面、浏览器、网络 CDN 中也都有缓存的身影。 缓存有哪些分类 如果你是做业务开发的话#xff0c;提起缓存首先想到的应该是应用 Redis在分布式系统中的缓存不止 Redis、Memcached 等后端存储在前端页面、浏览器、网络 CDN 中也都有缓存的身影。 缓存有哪些分类 如果你是做业务开发的话提起缓存首先想到的应该是应用 Redis或者 Memcached 等服务端缓存其实这些在缓存分类中只是一小部分。然而在整个业务流程中从前端 Web 请求到网络传输再到服务端和数据库服务各个阶段都有缓存的应用。 以电商业务场景为例如果你打开淘宝或者京东查看一个商品详情页这个过程就涉及多种缓存的协同我们从页面入口开始梳理一下如下图所示。 前端缓存 前端缓存包括页面和浏览器缓存如果你使用的是 App那么在 App 端也会有缓存。当你打开商品详情页除了首次打开以外后面重复刷新时页面上加载的信息来自多种缓存。 页面缓存属于客户端缓存的一种在第一次访问时页面缓存将浏览器渲染的页面存储在本地当用户再次访问相同的页面时可以不发送网络连接直接展示缓存的内容以提升整体性能。 HTML5 支持了本地存储本地存储包括 localStorage 和 sessionStorage其中 localStorage 没有时间限制在同一个浏览器中只要没被手动清理数据会一直可用sessionStorage 则和 session 的有效期内相关关闭浏览器页面后缓存会被清空。 除了本地存储HTML5 还支持离线缓存也就是 Application Cache 技术该技术可以实现应用离线的缓存在暂时断网离线后仍然可以访问页面。 Application Cache 是基于 manifest 文件实现的缓存机制浏览器会通过这个文件上的清单解析存储资源感兴趣的同学可以去了解下实现细节。 页面缓存一般用于数据更新比较少的数据不会频繁修改。除了页面缓存大部分浏览器自身都会实现缓存功能比如查看某个商品信息我如果要回到之前的列表页点击后退功能就会应用到浏览器缓存另外对于页面中的图片和视频等浏览器都会进行缓存方便下次查看。 前端缓存还有 App 内的缓存由于 App 是一个单独的应用各级缓存会更加复杂在 Android 和 iOS 开发中也有区别除非是做客户端开发的同学不需要了解具体的细节。我们只需要知道客户端缓存是非常重要的优化手段在开发中注意避免可能导致的问题就可以。 网络传输缓存 大多数业务请求都是通过 HTTP/HTTPS 协议实现的它们工作在 TCP 协议之上多次握手以后浏览器和服务器建立 TCP 连接然后进行数据传输在传输过程中会涉及多层缓存比如 CDN 缓存等。 网络中缓存包括 CDN 缓存CDNContent Delivery Network内容分发网络实现的关键包括 内容存储 和 内容分发 内容存储就是对数据的缓存功能内容分发则是 CDN 节点支持的负载均衡。 前端请求在经过 DNS 之后首先会被指向网络中最近的 CDN 节点该节点从真正的应用服务器获取资源返回给前端同时将静态信息缓存。在新的请求过来以后就可以只请求 CDN 节点的数据同时 CDN 节点也可以和服务器之间同步更新数据。 网络缓存还包括 负载均衡中的缓存 负载均衡服务器主要实现的是请求路由也就是负载均衡功能也可以实现部分数据的缓存比如一些配置信息等很少修改的数据。 目前业务开发中大部分负载均衡都是通过 Nginx 实现的用户请求在达到应用服务器之前会先访问 Nginx 负载均衡器。如果发现有缓存信息则直接返回给用户如果没有发现缓存信息那么 Nginx 会 回源 到应用服务器获取信息。 服务端缓存 前端请求经过负载均衡落到 Web 服务器之后就进入服务端缓存服务端缓存是缓存的重点也是业务开发平时打交道最多的缓存。它还可以进一步分为 本地缓存 和 外部缓存 。 本地缓存也可以叫作 应用内缓存 比如 Guava 实现的各级缓存或者 Java 语言中使用各类 Map 结构实现的数据存储都属于本地缓存的范畴。应用内缓存的特点是随着服务重启后失效作用时间很短好处是应用比较灵活。 外部缓存就是我们平常应用的 Redis、Memchaed 等 NoSQL 存储的分布式缓存它也是在系统设计中对整体性能提升最大的缓存。但如果外部缓存使用不当则会导致缓存穿透、缓存雪崩等业务问题关于如何处理这类问题我们将在下一课时进行分析。 数据库缓存 经过服务端缓存以后数据其实并不是直接请求数据库持久层在数据库层面也可以有多级缓存。 在 Java 开发中我们一般使用 MyBatis 或者 Hibernate 作为数据库访问的持久化层这两个组件中都支持缓存的应用。 以 MyBatis 为例MyBatis 为每个 SqlSession 都创建了 LocalCacheLocalCache 可以实现查询请求的缓存 如果查询语句命中了 缓存 返回给用户否则查询数据库 并且 写入 LocalCache 返回结果给用户。不过在实际开发中数据库持久层的缓存非常容易出现数据不一致的情况所以一般不推荐使用。 另外大家熟悉的数据库服务器也实现了自身的缓存层比如 MySQL 服务器支持的查询缓存。 在数据库执行查询语句时MySQL 会保存一个 Key-Value 的形式缓存在内存中其中 Key 是查询语句Value 是结果集。如果缓存 Key 被命中则会直接返回给客户端否则会通过数据库引擎 进行 查询并且把结果缓存起来方便下一次调用。虽然 MySQL 支持缓存但是由于需要保证一致性当数据有修改时需要删除缓存。如果是某些更新特别频繁的数据缓存的有效时间非常短带来的优化效果并不明显。 总结 本文讲解了分布式系统设计中的缓存应用包括前端缓存、网络缓存、服务端缓存以及数据库缓存。 缓存是一种通用的优化思路伴随着计算机技术发展至今在大学的操作系统专业课中就讲过计算机操作系统设计的多种缓存比如 Page Cache、Buffer Cache 等技术。你可以思考下除了上面课时内容中的几种缓存分布式系统还有哪些环节也用到了缓存技术欢迎留言分享。
http://www.dnsts.com.cn/news/111958.html

相关文章:

  • 亚马逊卖家做自己网站时光捕手 wordpress
  • 抚州做网站价格多少优秀的网页设计案例
  • 绵阳公司网站建设网站如何防止攻击
  • 建设网站需要分析什么专业免费网站建设哪里便宜
  • 企业如何建设自己的网站深圳网站搜索引擎优化
  • 做家政网站公司wordpress支持windows
  • 南通市规划建设局网站莱州网页
  • 做英文网站要会什么平面设计师素材网站
  • 唐山网站备案网站分布地点
  • 高校网站平台建设赣州市建设局
  • 网站建设系统公司wordpress 数据库账号
  • 外贸网站怎么规划浙江做网站的公司有哪些
  • 布吉附近网站建设通辽市网站建设
  • 搭建网站用什么软件wordpress菜单图标美化
  • 网站开发的基本流程知名网站制作企业
  • 商城县建设局网站手机怎么建设视频网站
  • 经典的响应式布局网站东莞著名网站建设
  • php网站开发要学什么网站建设动态页面修改删除
  • 做网站美工排版wordpress主题seo
  • 深圳微信网站开发ppt制作软件手机版下载免费
  • 能自己做谱子的网站wordpress 多数据库
  • 网站建设与推广推荐大型网站快速排名
  • 免费网站建设企业东菀高端网站建设
  • 网站建设与管理实验目的门户网站建设采购
  • 一站多通怎么做网站成都不能去的建筑设计公司
  • 自己的商标名称可以做网站名称吗推荐6个免费国外自媒体平台
  • 如何做360搜索网站织梦后台 data移除后 网站无法打开
  • 哪个网站可以做奖状郑州做网站优化的公司
  • 聚企360做的网站做汽车售后的网站
  • 营口工程建设信息网站找人做彩票网站多少钱