范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

12缓存数据库成为瓶颈后,动态数据的查询要如何加速?

  通过前面学习,你已经了解了在高并发大流量下,数据库层的演进,包含数据库层的主从分离和分库分表。
  测试你的系统架构已经可以支撑几十万的DAU了,整体的架构如下图:
  整体上来看,数据库分成了主库和从库,数据也被切分到了多个数据库节点上。但是随着并发的增多,存储数据的增多,数据库的磁盘IO逐渐成了系统的瓶颈,我们需要一种更快的组件来降低请求响应时间,提升系统性能。这时就引入了我们今天的主角:  缓存
  什么是缓存,如何将它的优势最大化呢?
  本节课缓存篇的总纲,从缓存的定义、缓存的分类和缓存的优劣势三个方面来了解缓存的设计思想和理念。再用4节课针对性的掌握缓存的正确使用姿势,以便在实际的工作中更好的使用缓存提升系统的性能。  什么是缓存
  缓存是一种存储数据的组件,它的作用就是让对数据的请求更快的返回。
  我们经常把缓存放到内存中来存储,所以就有人把内存跟缓存画上了等号,完全外行。作为业内人士,你要知道我们在某些场景下可能还会使用SSD作为冷数据的存储。比如360开源的Pika就是使用SSD解决Redis容量瓶颈的问题。
  实际上,凡是位于速度相差较大的两种硬件之间,用于协调两者数据传输速度差异的,都可以称为缓存。那么说道这里,我们就需要知道常见硬件组件的延时情况是什么,这样做方案的时候可以有直观的印象。所幸,业内已经有人总结出这些数据了,我们整理如下:
  从这些数据可以看到,做一次内存寻址大概需要100ms,而做一次磁盘的查找需要10ms,从这里 我们就可以看出内存作为存储介质和磁盘作为存储介质性能上的差距,所以,内存是一种最常见的缓存数据介质。
  缓存作为一种常见的空间换时间的性能优化手段,很多地方应用案例:  1、缓存案例
  Linux 内存管理是通过一个叫做 MMU(Memory Management Unit)的硬件,来实现从虚拟地址到物理地址的转换的,但是如果每次转换都要做这么复杂计算的话,无疑会造成性能的损耗,所以我们会借助一个叫做 TLB(Translation Lookaside Buffer)的组件来缓存最近转换过的虚拟地址,和物理地址的映射。TLB 就是一种缓存组件,缓存复杂运算的结果,就好比你做一碗色香味俱全的面条可能比较复杂,那么我们把做好的面条油炸处理一下做成方便面,你做方便面的话就简单多了,也快速多了。这个缓存组件比较底层,这里你只需要了解一下就可以了。
  在大部分的笔记本,桌面电脑和服务器上都会有一个或者多个 TLB 组件,在不经意间帮助我们加快地址转换的速度。
  再想一下,你经常刷的抖音,平台上的短视频实际使用内置的网络播放器来完成  ,网络播放器接受的是数据流,将数据下载下来之后,经过分离音视频流,解码等流程之后输出到外设设备上。
  如果我们在打开一个视频的时候才开始下载数据的话,无疑会增加视频的打开速度,并且播放过程中会有卡顿,所以我们播放器中通常会设计一些缓存的组件,在未打开视频时候缓存一部分视频数据,比如我们打开抖音,服务端可能一次会返回三个视频信息,我们再播放第一个视频的时候,播放器已经帮我们缓存了第二个 三个视频数据,这样在播放第二个视频的时候,给用户 秒开的感觉。
  除此之外,我们知道的http协议也是有缓存机制的。当我们第一次请求静态资源时,比如一张图片,服务端除了返回图片信息,在响应头里面还有一个 etag 的字段。浏览器会缓存图片信息及这个字段的值,当下一次在请求的时候,请求头里会有一个 if none match 字段,并且把 etag的值写进去发给服务端。服务端比对图片信息是否有变化,如果没有,返回一个304的状态,浏览器会继续使用缓存的图片信息,通过这种缓存协商的方式,可以减少网络传输数据大小,从而提升页面展示的性能。
  2、缓存与缓冲区
  讲了缓存案例,想必你对缓存已经有了一个直观且形象的了解了。除了缓存,我们再开发过程中还经常听到一个相似的名词——
  缓冲区。那么什么事缓冲区,跟缓存有什么区别呢?
  缓存可以提高高低速设备的访问速度,或者减少复杂耗时计算带来的性能问题,理论上可以通过缓存解决所有关于慢的问题,比如从磁盘随机读取数据慢,从数据库查询数据慢只是不同的场景耗用的成本不同。
  缓冲区则是一块临时存储数据的区域,这些数据后面会被传输到其他设备上缓冲区更像一种消息队列的模式,用以弥补高速设备和低速设备 的速度差,比如我们将数据写入磁盘时,并不是直接刷盘,而是写到一块缓冲区里面,内核会标记这个缓冲区为脏,当经过一段时间或者缓冲区比例到达一定阈值时,有单独的线程把脏数据刷到硬盘上。这样就避免了每次写数据带来的性能问题。
  以上就是缓存和缓冲区的区别,那么我们常用的缓存有哪些?我们又该如何使用缓存才能将他的优势最大化呢?  缓存分类
  我们日常开发中,常见的缓存主要有:静态缓存、分布式缓存、热点本地缓存。
  对于日均PV几十亿的门户网站来说,如果每天发布的内容都是保存在数据库,页面展示的时候通过穿透数据库来读取,这样显然来说是不合适的,即使我们使用了分布式缓存,基于成本考虑仍然是不划算的。
  所以我们的解决思路是每篇文章在录入的时候渲染成静态页面  ,放置在所有的前端Nginx或者squid等web服务器上,这样用户访问到的优先就是服务器上缓存的静态页面,再对旧的文章执行一定的清理之后依然可以保证90%以上的命中率。
  这种缓存只能针对静态数据来缓存,对于动态的缓存你可以选择分布式缓存,那么为什么要考虑本地缓存呢?
  答案是我们遇到极端的热点数据查询的时候,热点本地缓存主要部署在应用服务器的代码中,用于阻挡热点查询对于分布式缓存或者数据库的压力。
  比如某位明星的热点时间,会短时间引起很多围观用户,造成瞬间大量请求命中某一个缓存节点或者一个数据库分区,速度极快。
  那么我们通常使用的本地缓存方案有哪些呢?如 hashmap,guava cache , ehcache等,他们和应用程序部署在同一个文件中,是不需要跨网络调度,速度极快,所有可以用来阻挡某些热点查询。
  比如电商系统中有这样一个场景:首页的商品信息是每隔一段时间会更新的,但是展示是不需要实时的可以设置每隔30S更新一次,这个场景我们就可以利用guava cache 把商品信息缓存在本地,然后每隔30s 去后台重新拉取更新后的商品信息,在缓存起来。
  首先,初始化的操作如下:  CacheBuilder> cacheBuilder = CacheBuilder.newBuilder().maximumSize(maxSize).recordStats(); //设置缓存最大值 cacheBuilder = cacheBuilder.refreshAfterWrite(30, TimeUnit.Seconds);  //设置刷新间隔 LoadingCache> cache = cacheBuilder.build(new CacheLoader>() {    @Override    public List load(String k) throws Exception {      return productService.loadAll(); // 获取所有商品    } });
  这样你获取商品信息的时候可以调用Loading Cache 的 get 方法,就可以优先从本地缓存中获取商品信息,如果缓存不存在就是使用CacheLoader中的逻辑从数据库加载数据。
  由于本地缓存部署在应用服务器的,而我们的应用服务器通常部署多台,当数据更新时,我们不能确定哪台服务器本地中了缓存,更新或者删除所有服务器的缓存不是一个好的选择,所以我们通常会等待缓存过期,因此这种缓存的有效期很短,通常为分总或者秒级,便面返回给前端脏数据。  缓存的不足
  缓存的主要作用提升访问速度,从而抵抗住高并发请求,那么缓存是不是能解决一切问题呢,肯定不是,凡是事务都有两面性,我们更需要了解它的不足,从而更好的发挥缓存的优势。
  首先,缓存适合读多写少的场景,最好带有一定的热点属性  ,缓存毕竟受限于存储介质不可能缓存所有的数据,当数据有热点属性才能保证一定的缓存命中率,所以一旦当场景读少写多的时候,缓存的作用就不那么明显了。
  其次,缓存会带来系统的复杂度,并且存在数据不一致的风险  。当更新数据库成功,更新缓存失败的时候,缓存中就会存在脏数据,对于这种场景我可以考虑使用较短的国企时间和手动清理缓存方式解决。
  再次,之前提到的缓存通常使用内存作为存储介质,但是内存不是无限的  。因此我们再使用缓存的时候要注意评估存储量级,对于存储成本极大的数据,慎用缓存方案。
  最后,缓存给运维也带来一定的成本。  运维需要对组件有一定的了解。
  缓存虽然有这么多问题,但是对系统的性能提升毋庸置疑的,所以我们在走架构方案设计的时候一定要把缓存考虑进去。
  缓存不仅仅是一种组件的名字,更是一种设计思想,任务加速读请求的组件和设计方案都是缓存思想的体现。

iQOO9Pro评测这才是真正的驯龙高手近日,iQOO正式发布了全新一代iQOO9系列旗舰,优秀的屏幕,顶级的处理器,最新的闪存规格,还有全新首发的GN5主摄说实在的,我和大家一样好奇,因为iQOO8Pro在各方面配置可精细化管理需要智能化助力来源人民网人民日报能耗管理大数据平台为企业和政府提供了更多参考和助力,让生产效率和监管水平得到了提高。我们期待更多的新技术应用于生产领域,为提质增效探索更多路径在实现双碳目标的背景星链卫星逼近我空间站,特斯拉是否也会被远程控制危害国家?星链卫星逼近我空间站,特斯拉是否也会被远程控制危害国家?马斯克团队太空计划中,已经表现出侵略中国的意图,干扰我国空间站。有可能就是马斯克在不断实验太空战的效果,为太空战做改进。有此景顺长城基金杨锐文电动智能汽车是未来十年最精彩的产业方向2022年更看好智能化发展趋势余世鹏中国证券报中证网中证网讯(记者余世鹏)针对当前的新能源投资行情,近日景顺长城基金的基金经理杨锐文发表观点指出,从大趋势来说,电动智能化的大趋势毋庸置疑,电动智能汽车一定是未来怎么制作电影片头片尾?首先你要学习一下剪辑的软件,如果你是新手,可以安装绘声绘影PR等针对剪辑的软件,这样的软件很简单,功能也是以剪辑为主,不过在扩展的功能上会差一些,比如更多的插件,更多的模板效果等,决定人生的三圈能力,认知,资源能力圈(核心圈)认知圈(中层圈)资源圈(外围圈)人工智能三要素算力,算法,数据。一,何为能力?能力的储存中心就是头脑,其次才是躯体。人是靠脑力做事赚钱还是靠体力做事赚钱呢?大脑的本海信发布中国首颗全自研8KAI画质芯片澎湃财讯1月11日,海信在北京发布中国首颗全自研8KAI画质芯片。这颗8kAI画质芯片是海信5代画质芯片,也代表了国内单颗画质芯片的最高处理能力。据介绍,该芯片首次实现了从4K到8方便生活的新疆定制款app,就是新疆好地方已经下载了新疆好地方app的亲们可以仔细看看其中的强大的功能!他可不是一个普通的app!他是一款专门为新疆市民服务的app,用户通过实名认证注册后,就可以享受app内丰富多样的功能成功人士的10000小时在格拉德韦尔看来,天才不过是做了足够多练习的人。他提出的10000小时法则,在各界的成功人士身上,可以轻易得到印证。如今,提到比尔盖茨,人们会对他的一切津津乐道数学才俊电脑天才,从雷军找设计师专门做了个手机壳不卖钱,小米11让路新机跌至大米价近日,小米集团董事长兼CEO雷军为小米12Pro推出了一款定制的Monterian保护套,据悉该保护套是雷军亲自设计的独家产品,不会在市场上量产,就是传说中的不卖多少钱!Montr二零二二年投资方向新的一年新的开始,投资也要重新起航,我们先来看一下各大劵商对于2022年的投资观点,可以作为中长线布局的。以下所有观点只是个人的观点不构成具体的投资建议。中信证劵看好的行业消费科技
SingleBAND智能多频融合,迈向5Gigaverse社会的关键全球5G产业发展迅速,两年内建设了170多张网络,并发展近5亿用户。随着5G商用部署进入新阶段,用户将需要更加连续的体验,行业数字化也对5G能力提出新的要求。下一阶段的目标是建设一华为云应用现代化不让企业数字化转型输在最后一公里软件定义世界,一切皆可编程。近年来,随着数字经济成为全球发展主旋律,软件应用日益成为各行各业企业组织与客户用户连接的纽带。无论是核心业务的交付运维,还是客户关系人力资源管理,乃至日小鹏新能源车连续两月销量破万智能化成最大亮点在众多新能源车企中,为了突出品牌优势,各自都制定了差异化的战略路径,以此来满足各自粉丝和消费者的不同需求。比如理想汽车坚持的增程式,缓解了消费者对续航里程焦虑蔚来将自己定义为高端品学好配音的14个技巧,第二期,学配音搞副业大家共同努力上一期我介绍了3种学习配音的技巧,接着上期我将再分享4种技巧大家记得保存下来,以备不时之需,好了废话不多说了,下面我就来介绍技巧。4。大声地念出来大声读书。最好是你拍一部有多个不同提高配音技巧的14个技巧和练习,第一期,学配音搞副业配音很好玩。许多人梦想成为配音演员,然而,这是一项很难学习的技能。你希望你的声音能变魔术,但表演往往显得单调乏味。在本文中,我将先提供3个技巧和练习,以改善和提升您的配音技巧到一个世界首例从鲸鱼嘴里活下来的人,到底是真是假?这名捕虾人声称自己差点被座头鲸吞下肚子,捕虾人称被座头鲸吃到嘴里然后又被吐了出来,当时科德角医院的至少一名医生上班,的新闻网表示了对这则鲸鱼故事的怀疑。据报道,他在20到40秒内从如何在智能手机上录制高质量的音频,方法在这里拿走不谢大部分时间我都用我的专用麦克风录制音频,但是,有时它不可用,而智能手机是您手头的唯一选择。我们将研究如何针对这些实例优化您的智能手机以获得最佳质量的录音。无论您是像我这样的Andr提高人声清晰度的方法,最后一期在前面的几期里我分享了7种如何提高人声清晰度的方法,这期是最后一期,将会分享最后4个方法,也希望能帮助到大家。1。铅笔练习它不一定是铅笔。您可以放在牙齿之间的任何道具都可以使用,但11项提高人声清晰度的练习,第一期配音是一个很神圣的一个职业,例如动漫就是通过配音使动漫赋予灵魂,随着国内动漫的崛起,加入配音工作的人也越来越多,而刚开始学习配音的人,也会犯很多的错误,就比如如何提高人声清晰度的问配音师不会教给新人的18个技巧(最终篇),记得保存不然就没了前几期基本上技巧分享的差不多了,最后再分享两个配音技巧记得好好学,下期将会分享其他配音方面的知识,干货满满,记得点赞关注收藏哦!!!!!16。找到好的空间您需要在您的房屋或公寓中找配音师才知道的14个配音技巧,纯干货,快收藏!(第4期)继续接着上一期的分享,后面有加入了我的学配音的技巧满满都是干货,记得点赞转发收藏。废话不多说我开始分享!!!12。事先阅读脚本在开始录制之前阅读脚本很重要。不要跳过这部分,它会让你