游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

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

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

十四五空调大变局TCL新风空调引领健康消费新趋势十四五规划提出,顺应消费升级趋势,促进消费向绿色、健康、安全发展。具体到空调行业,为顺应健康消费升级趋势,行业变化已在悄然发生。尤其新冠疫情发生以来,以健康为主线的新风空调迅速……iPhone13系列价格或与12保持一致苹果手机销量排行榜2据最新消息显示,苹果会在下个月发布iPhone13,而届时新机将首发5nm工艺,当然台积电是独家代工厂。最新的消息显示,iPhone13系列会与iPhone12系列保持一致(国……贝贝品呗丨富可敌国!苹果总市值3万亿美元三湘都市报全媒体记者刘品贝我是贝贝,今天有个消息有点惊人,一家公司总市值超过全球第五大经济体英国一年的GDP总额!这就是苹果。1月3日,苹果公司股价盘中大涨近3,总……全球90耳机产自中国,TWS耳机年出货量或超3亿副中国是耳机生产大国,全球约有90的耳机产自中国。数据显示,尽管新冠肺炎疫情对全球经济造成影响,但今年一季度,TWS,即真无线蓝牙耳机全球销量仍同比增长44。迪芬尼电声科技有限公……互联网电商平台是如何让更多人失业的我原来在一家线下零售公司的互联网平台工作。这个零售公司原来只做线下门店,有上千家门店,但近年受电商冲击很大,集团总部决定建立自营电商平台,夺回失去的销售份额。第一年,我进……手机外接摄像头的效果怎么样?当然好。买个微单还专业效果是有的,而且就算在某宝上随便买个几十块钱的外挂镜头拍照效果也是很不错的。但是这东西弊大于利,首先一个,手机拍照本来就是以便携为主,在……维密为何选择入驻京东?8月9日,维多利亚的秘密宣布入驻京东,同时维密京东官方旗舰店也正式开始营业,自此,又一国际品牌加入京东平台。维密为何选择入驻京东?受疫情影响,国外市场至今仍未完全恢……做美团的心情录大家好,我是一位美团小哥,今天我想在这里和大家聊聊我自己做美团小哥这四年来的点点滴滴和我自己的生活!我是2018年加入了美团的,在我以前的时候也经常听到跑外卖是多么多么得……京东物流,对抗傲慢的14年作者:lesy编辑:原野1hr刘强东在接受采访时曾说:如果京东需要烧十年的钱打造物流的话,其他任何公司都得需要十年,这个几乎是无法逾越的。京东物流的护城河是用……推动大数据与乡村振兴深度融合来源:经济日报作为曾经贫困程度最深的省份,贵州创造了反贫困事业的省级样板。走出绝对贫困并非终点,而是乡村振兴的基础和起点。近年来,随着大数据战略的深度实施,大数据已经成为推动贵……相对于IPFS为何Chia能得到如此青睐?chia没有门槛啊!谁都可以挖首先IPFS本质上属于分布式存储,类似CDN项目,区别在于数据来源和收益代币模式,其次Ipfs模型太复杂,环节套路太多,起点要求太高。包括中……最想不到的跨界?OPPO与农业正式牵手,绿植灌溉专利很黑科技在手机界,各大知名厂商积极进行的跨界活动成为了圈内的一道风景线。正如最近跨界到汽车领域的手机大厂OPPO,这个家喻户晓的手机品牌公开了一项全新专利,涉及绿植灌溉的技术内容引起了……
14家P2P公司被中国互金协会取消资格3家遭公开谴责近日,中国互联网金融协会官网发布《中国互联网金融协会对部分违规会员单位采取自律惩戒措施》。消息称,依据《中国互联网金融协会章程》、《中国互联网金融协会自律公约》、《中国互联网金……苹果的环保做法你认同吗?库克减配iPhone13配件,你还打导读环保对任何行业都是非常重要,苹果手机对各界呼吁的环保也是做出了实质性行动。特别是华尔街人士提出的智能手机电子垃圾问题。苹果公司对自己的iPhone系列手机,进行了一系……实体行业还有能赚钱的吗?随着这几年的电商行业发展趋势越来越猛,实体行业发展前景越发低迷,加上这2年的疫情原因,更加是压垮了不少实体门店,每个月辛辛苦苦都不够交租金,请人也请不起,行情萧条也留不住人,每……新能源汽车渗透率不断暴涨,反而可能是个危险信号?可能很多人都不曾想过,新能源汽车销量大涨,会成为汽车市场的一个凶兆。在过去的上半年,无论是汽车整车还是新能源汽车板块,都是领跑资本市场的可靠板块。同花顺财经显示,从今年年……小米高端梦背后一年35次调整,市值再次跌破发行价,较高点蒸发近日,雷军在小米高端化战略研讨会上再一次强调了小米的高端化目标:产品和体验要全面对标iPhone,三年内拿下国产高端手机市场份额第一。自2019年以来,小米便一直在强调向……网友咨询iPhone官换机和BS机谁更值得买?简单对比之后还九月份开学季还在继续,刚进入校园的同学是不是想换一个好一点的手机,iPhone官换机和BS机(二手iPhone中的充新机)是一个很不错的选择,更低的价格买到自己心仪的机器,但是……转转手机市场分析OPPO手机买得多,居然也卖得多?时人不识凌云木,待到凌云始道高。几年前提起OPPO手机,很多人的第一印象是高价低配、厂妹专用等等然而,随着5G的到来,这些标签正逐渐被摘掉,OPPO手机的科技实力被……倍思87W氮化镓二合一充电宝上架搞定所有充电需要近日,小米有品商城上架了一款名为倍思87W能量堆的氮化镓二合一充电宝产品。根据官方介绍,倍思87W能量堆拥有1000mAh容量电量储备。搭载BPSII充电技术,AC模式下……电力行业股票名单关注股票的朋友可能都听过这么一句话:冬炒煤炭夏炒电,这句话的意思简单理解就是在我国,冬天的时候煤炭的需求量会比较大,广大农村地区需要烧煤取暖,以及水力发电等在冬季发电量衰减需要……滴滴上市首份成绩单净亏损306亿元,阿里张勇辞任滴滴董事12月30日,滴滴发布上市后的首份财报,2021年第二季度,滴滴的总收入为482亿元人民币。2021年第三季度,滴滴的总收入为427亿元人民币,环比下降11。48,净亏损306……缺芯!缺芯!缺芯!如何应对这一世纪难题?本报记者贾丽芯片缺货现象2022年或将持续。年关将至,手机大厂们纷纷召开紧急会议。摆在它们面前的只有两个选择:囤货或造芯。一边厢,三星移动认为芯片荒在明年还将会持续……买手机别盲目跟风,这三款手机才是真香首选,买到就是赚到当下手机市场当中的机型越来越广泛,他们针对各个领域都有了不同程度的提升,好比针对游戏领域和拍照领域等,因此很多用户陷入了选择的难题中,从而最终选择的是不适合自己的手机。实际上并……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网