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

高并发环境下构建缓存服务,你需要注意这6点

  本文分享自华为云社区《【高并发】高并发环境下构建缓存服务需要注意哪些问题?-云社区-华为云》,作者:冰 河。缓存特征
  (1)命中率:命中数/(命中数+没有命中数)
  (2)最大元素(空间):代表缓存中可以存放的最大元素的数量,一旦缓存中元素的数量超过这个值,或者缓存数据所占的空间超过了最大支持的空间,将会触发缓存清空策略。根据不同的场景,合理设置最大元素(空间)的值,在一定程度上可以提高缓存的命中率,从而更有效的使用缓存。
  (3)清空策略:FINO(先进先出)、LFU(最少使用)、LRU(最近最少使用)、过期时间、随机等。FINO(先进先出):最先进入缓存的数据,在缓存空间不够或超出最大元素限制的情况下,会优先被清除掉,以腾出新的空间来接收新的数据。这种策略的算法主要是比较缓存元素的创建时间,在数据实时性较高的场景下,可以选择这种策略,优先保证最新策略可用。LFU(最少使用):无论元素是否过期,根据元素的被使用次数来判断,清除使用次数最少的元素来释放空间。算法主要是比较元素的命中次数,在保证高频数据有效的场景下,可以选择这种策略。LRU(最近最少使用):无论元素是否过期,根据元素最后一次被使用的时间戳,清除最远使用时间戳的元素,释放空间。算法主要是比较元素最近一次被获取的时间,在热点数据场景下,可以选择这种策略。
  过期时间:根据过期时间判断,清理过期时间最长的元素,或者清理最近要过期的元素。缓存命中率影响因素
  (1)业务场景和业务需求
  缓存往往适合读多写少的场景。业务需求对实时性的要求,直接会影响到缓存的过期时间和更新策略。实时性要求越低,就越适合缓存。在相同Key和相同请求数的情况下,缓存的时间越长,命中率就会越高。
  (2)缓存的设计(粒度和策略)
  通常情况下,缓存的粒度越小,命中率越高。缓存的更新和命中策略也会影响缓存的命中率,当数据发生变化时,直接更新缓存的值会比移除缓存或使缓存过期的命中率更高。
  (3)缓存容量和基础设施
  缓存的容量有限,则容易引起缓存失效和被淘汰(目前多数的缓存框架或中间件都采用了LRU算法)。同时,缓存的技术选型也是至关重要的,比如采用应用内置的本地缓存就比较容易出现单机瓶颈,而采用分布式缓存则毕竟容易扩展。所以需要做好系统容量规划,并考虑是否可扩展。此外,不同的缓存框架或中间件,其效率和稳定性也是存在差异的。
  (4)其他因素
  当缓存节点发生故障时,需要避免缓存失效并最大程度降低影响,这种特殊情况也是架构师需要考虑的。业内比较典型的做法就是通过一致性Hash算法,或者通过节点冗余的方式。
  有些朋友可能会有这样的理解误区:既然业务需求对数据时效性要求很高,而缓存时间又会影响到缓存命中率,那么系统就别使用缓存了。其实这忽略了一个重要因素–并发。通常来讲,在相同缓存时间和key的情况下,并发越高,缓存的收益会越高,即便缓存时间很短。提高缓存命中率的方法
  从架构师的角度,需要应用尽可能的通过缓存直接获取数据,并避免缓存失效。这也是比较考验架构师能力的,需要在业务需求,缓存粒度,缓存策略,技术选型等各个方面去通盘考虑并做权衡。尽可能的聚焦在高频访问且时效性要求不高的热点业务上,通过缓存预加载(预热)、增加存储容量、调整缓存粒度、更新缓存等手段来提高命中率。
  对于时效性很高(或缓存空间有限),内容跨度很大(或访问很随机),并且访问量不高的应用来说缓存命中率可能长期很低,可能预热后的缓存还没来得被访问就已经过期了。缓存的分类和应用场景
  (1)本地缓存:编程实现(成员变量、局部变量、静态变量)、Guava Cache
  (2)分布式缓存:Memcached、Redis高并发场景下缓存常见问题
  (1)缓存的一致性
  更新数据库成功——更新缓存失败
  更新缓存成功——更新数据库失败
  更新数据库成功——淘汰缓存失败
  淘汰缓存成功——更新数据库失败
  (2)缓存并发
  并发时请求缓存时已过期或者没有命中或者更新的情况下有大量的请求访问数据库。
  解决办法:在缓存更新或者过期的情况下,先尝试获取到lock,当更新完成后,尝试释放锁,其他的请求只需要牺牲一定的等待时间
  (3)缓存穿透
  在高并发的场景下,如果某一个key被高并发的访问没有被命中,出于对容错性的考虑会尝试从后端的数据库获取,从而导致大量的请求访问了数据库,主要是当key对应的数据为空或者为null的情况下,这就导致数据库中并发的执行了很多不必要的查询操作。从而导致了巨大的冲击和压力。
  解决方法:
  缓存空对象:对查询结果为空的对象也进行缓存,如果是集合可以缓存一个空的集合,而不是null,如果是单个对象可以通过字段标识来区分,需要保证缓存数据的时效性(实现相对简单),适合命中不高但可能会频繁更新的数据。
  单独过滤处理:对所有可能对应数据为空的key进行统一的存放,并在请求前做拦截(实现相对复杂),适合命中不高更新不频繁的数据
  (4)缓存颠簸问题
  缓存的颠簸问题,有些地方可能被称为"缓存抖动",可以看作是一种比"雪崩"更轻微的故障,但是也会在一段时间内对系统造成冲击和性能影响。一般是由于缓存节点故障导致。业内推荐的做法是通过一致性Hash算法来解决。
  (5)缓存雪崩现象
  缓存雪崩就是指由于缓存的原因,导致大量请求到达后端数据库,从而导致数据库崩溃,整个系统崩溃,发生灾难。导致这种现象的原因有很多种,上面提到的"缓存并发","缓存穿透","缓存颠簸"等问题,其实都可能会导致缓存雪崩现象发生。这些问题也可能会被恶意攻击者所利用。还有一种情况,例如某个时间点内,系统预加载的缓存周期性集中失效了,也可能会导致雪崩。为了避免这种周期性失效,可以通过设置不同的过期时间,来错开缓存过期,从而避免缓存集中失效。
  从应用架构角度,我们可以通过限流、降级、熔断等手段来降低影响,也可以通过多级缓存来避免这种灾难。
  此外,从整个研发体系流程的角度,应该加强压力测试,尽量模拟真实场景,尽早的暴露问题从而防范。
  (6)缓存无底洞现象
  该问题由 facebook 的工作人员提出的, facebook 在 2010 年左右,memcached 节点就已经达3000 个,缓存数千 G 内容。他们发现了一个问题—memcached 连接频率,效率下降了,于是加 memcached 节点,添加了后,发现因为连接频率导致的问题,仍然存在,并没有好转,称之为"无底洞现象"
  点击下方,第一时间了解华为云新鲜技术~
  华为云博客_大数据博客_AI博客_云计算博客_开发者中心-华为云

2022年我国系统重要性银行名单发布央视新闻客户端中国人民银行昨天(9日)表示,中国人民银行银保监会开展2022年度我国系统重要性银行评估后,认定了19家国内系统重要性银行。2022年我国系统重要性银行共有19家,其房价在暴跌吗?救市一定要找准对象引言最近看到一则消息大厂房价从3。5万降到1。5万,涿州从1。8万降到8000,其中跌幅最大的可能是永清,从最高点的2。5万降到6000左右,已经不能说是腰斩了,而是膝盖斩,永清是成立独立APP,新东方甄敢选啊文Lumens近来在抖音大火的董宇辉热度还未完全散去,其背后的东方甄选品牌又搞出了大动作。新东方最近推出了独立的东方甄选APP,并已经在各大应用商店上线,目前下载量已达数十万。推出央行副行长推进数字人民币标准化建设,实现一码通扫中国人民银行副行长范一飞日前表示,要推进数字人民币体系的标准化建设,实现数字人民币体系与传统电子支付工具的互联互通,让消费者可以一码通扫。范一飞在8日举办的2022中国(北京)数字强调同城化发展中西部首个跨省域都市圈规划出炉本报记者庄灵辉卢志坤重庆北京报道把握要素流动和产业分工规律,围绕重庆主城和成都培育现代化都市圈,带动中心城市周边市地和区县加快发展。在2021年中共中央国务院印发的成渝地区双城经济五粮液可以入手了吗?基本面权重蓝筹股,浓香型白酒行业龙头,市场口碑仅次于茅台,主要产品五粮液酒历史悠久,文化底蕴深厚,是中国浓香型白酒的典型代表与知名民族品牌,多次荣获国家名酒称号,入选中欧地理标志协2022年我国系统重要性银行名单发布元阿比欧体2022年我国系统重要性银行名单发布今天(9月9日),中国人民银行表示,中国人民银行中国银行保险监督管理委员会开展2022年度我国系统重要性银行评估后,认定了19家国内系退市新规行政诉讼第一案在上海宣判9月9日,上海金融法院公开审理了原告厦门华侨电子股份有限公司(以下简称厦华电子)诉被告上海证券交易所(以下简称上交所)终止上市决定一案,并当庭作出一审判决。本案是全国首例因不服依退国家明确!9月30日起实施近日,国家互联网信息办公室工业和信息化部国家市场监督管理总局联合发布互联网弹窗信息推送服务管理规定(以下简称规定),自2022年9月30日起施行。国家互联网信息办公室有关负责人表示新三板2022年下半年分层初筛名单公布42家公司拟调入创新层9月9日,全国股转公司发布了2022年第四批拟调入新三板创新层的挂牌公司初筛名单,共计42家公司拟调入创新层。记者从全国股转公司了解到,本批次调层结束后,新三板2022年进层实施工吃了转胎丸,就能女变男?转胎骗局下,有多少父母在制造双性人附录如何避免孩子发生两性畸形?1。禁止近亲结婚,近亲结婚会使得染色体分化异常的几率大大提高,进而导致两性畸形。2。做好婚前检查,是排除夫妇双方可能存在的遗传疾病做到优生优育的重点手
名士黄允休妻后结局怎样?现在的偶像经济,是非常走红的,粉丝会给喜欢的明星艺人投票做宣传。其实在古代,就有了国民偶像的前身。东汉时期,有文化的人比较少,因此成为了香饽饽。百姓们十分仰慕有文化造诣的墨客,觉得他是金国的大臣,抛妻弃子投奔成吉思汗后,为何能得到重用?公元1211年春,49岁的成吉思汗,仅仅留下三千蒙古骑兵守护大本营后,将所有兵马全部投入到对金国的战争中。此时的成吉思汗,虽然统一了草原,其总兵力达到13万左右,但和强大的金国相比大米引发的血案武则天兴兵30万攻打渤海,打了7年至今为止,你听过最搞笑的笑话是什么天子一怒,血流成河公元698年,在位已经8年的75岁高龄的女皇武则天发兵30万攻打渤海国,原因竟然是一碗大米,没想到这场战争一打就是七年,直到公元涨知识秦始皇陵被盗了吗秦始皇陵真的被盗了吗?为什么有很多人说秦始皇陵已经被盗了?在讲他是否被盗之前,带大家先了解一下。关于秦始皇陵你绝对不知道的三个知识。第一,它真的不是一个普通的帝王陵墓。秦始皇陵墓总为何古代封建王朝都撑不过300年,这个原因你知道嘛我国历史第一位皇帝是秦始皇,因此秦朝也是开创封建王朝的重要朝代。在秦朝之前的历史叫做先秦时代,那时的统治方式是分封制,天子直辖的地方很小,其他土地都是以分封的方式分给各个王公大臣。一线医护工作者如何做好心理防护原标题疫情防控在一线一线医护工作者如何做好心理防护新甘肃甘肃日报记者王睿君疫情防控中,医护人员担任着健康卫士的重要角色,他们冒着风险奋战在抗疫一线,心理压力较大。照顾好自己才能给他中国蓝小记者ampampamp假日小队营地教育战略合作签约官宣!战略合作!浙江广电集团旗下中国蓝小记者与假日小队营地教育,正式签约成为战略合作伙伴!本次签约,假日小队营地教育将借助浙江广电集团稀缺的软硬件资源(如著名主持人和记者浙江广电媒你敢信?13个原本扑朔迷离的历史之谜,真相实际简单到让人意外在一个互联网能为人们能想到的几乎所有问题,提供一个合理解释的世界里,一个新的谜团可以重新点燃我们的想象力,重现一个尚未完全探索或理解的世界的感觉。可能是出于对过去那些无法解释的事件人兔战争广袤的澳大利亚为何容不下20只兔子?文丨赛艇队长提到澳大利亚,不少人第一时间想到的都是骑在羊背上的国家,坐在矿车上的国家。实际上澳大利亚还是一个踩在兔子上的国家。在大部分人的印象中,小兔子一直是乖巧温顺,人畜无害的小海峡第一村围头村登上央视山水间的家节目海峡第一村围头村登上央视山水间的家节目海水里鲍发新活力录制现场洪水平向那英赠送围头村的书籍山水间的家走进围头村跨越山海觅乡情,绘就乡野丰收景。11月26日2000,由中央广播电视总谁说鱼和熊掌不可兼得,秋冬穿搭,又酷又飒的同时还不失青春俏皮来喽来喽,今天的小姐姐又来喽本期的小姐姐穿搭适合秋冬哦,系上外套和解开外套可谓是两种风格小姐姐下身穿着jk裙上身搭配jk长袖辣媚衬衫加一条与裙子相呼应的领带,腿部一条长si袜,脚上