`

业务层面缓存穿透的解决方案

 
阅读更多

网上有一些关于缓存穿透和缓存雪崩的解决方案,无非是:

      1.如果查询数据为null,则把null进行缓存

      2.使用布隆过滤器

 

先来说说缓存穿透的概念:我们在项目中使用缓存通常都是APP先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时候如果我们查询的某一个数据在缓存中一直不存在,就会造成每一次请求都查询DB,这样缓存就失去了意义,在流量大时,可能DB就挂掉了。

 

再来讲讲我们的业务场景:

      1.通常我们是首页,或是统计页,用户请求较多,首页进入系统必定会加载,统计页(针对一些准实时的统计结果)查询的SQL或是结果比较复杂。

      2.时效性一般,基本上小时级别

      3.数据量较大,一般是亿级或是千万级别

      4.业务逻辑比较复杂,可能需要进行各种表的关联

      5.如果请求过多,有可能数据库奔溃,即使在进行分库分表之后还是有可能占用一大部分的数据库IO和CPU资源

      6.统计的维度较多,每个用户请求的维度可能是不一样的。

      针对上述情况我们一般的做法,就是加一层缓存,请求过来先去访问缓存,可以使用memcached或是redis,如果缓存不存在或是缓存失效的情况下,再去load DB。大部分的情况下,这是非常好的,但是某一天如果你需要重启缓存,或是缓存在某一时刻失效很大一部分,这就会导致我们之前所说的缓存穿透。

     ok,来说下我们在缓存穿透的优化吧:先来看个架构图,在来解释

      

 

    1.更具业务统计的维度或是场景,建立一张以JSON格式为模板的表

    2.通过调度平台,定时的把任务统计完成并保存至模板表中和缓存集群中

    3.不断对2进行轮询,保持数据的热度

    4.用户请求过来,先访问我们的缓存,一旦缓存失效或是重启,直接从数据库模板表中获取最新的热度数据并缓存,这样我们就能有效的减轻数据库的压力。

    5.这也是一种缓存预热的方案

 技术交流:534368042

分享到:
评论

相关推荐

    缓存一致性问题与解决方案

    事务解决的也是数据一致性的问题(业务层与数据库层面的一致性),看来这个也跟数据库的事务没有关系。 4、我们可以采用队列来实现,read的时候判断当前队列中是否存在删除操作,如果存在直接等待,如果没有直接...

    华为3Com新一代高安全金融业务网络解决方案

    华为3Com公司整合型网点解决方案同时提供了三个层面的整合特性支持:设备整合、数据整合和业务整合,在全面整合的同时,更提供一体化的安全、可靠性支持和完善的可管理特性,并且全面预留下一代面向业务的骨干网络...

    架构层面高并发解决方案

    Web项目,尤其是面向C端的项目,做到中后期往往要解决高并发的问题。本文通过对三种架构的并发性能分析,为这一阶段的开发和重构提供参考。

    运营商融合创新ICT解决方案76页.pptx

    本解决方案旨在帮助运营商实现业务转型,提升用户忠诚度,快速发展垂直行业领域信息化市场。通过深信服ICT解决方案,运营商可以获得多方面的收益,包括增加收入、减少收入流失、提升方案竞争力、发展更多客户、提高...

    【解决方案】(54页)基于智慧城市的CIM解决方案.pdf

    智慧城市的CIM解决方案可以分为三个层面:数据层、应用层和presentation层。在数据层,CIM解决方案可以收集和存储城市的各种数据,包括基础设施、人口、环境、交通等数据。在应用层,CIM解决方案可以对城市的数据...

    Spring能够粘合不同层面的解决方案

    OpenDoc项目发起人及《DrBobb’s Journal China 》,Spring能够粘合不同层面的解决方案,但无论是MVC层还是ORM层,Java领域从来都不缺少好的框架,我们在使用Spring时,从这些框架中做选择的依据是什么?

    IBM EAI电信业务支撑系统的EAI架构规划及IBM解决方案

    Very Good! 1.1. 本文目的 本文的目的在于针对中国电信行业EAI的建设,从技术层面提出几点架构性建议,供电信运营...• EAI的高端解决方案——业务行为监控(BAM) • 解决EAI性能瓶颈 • 电信行业EAI项目管理实施经验

    华为3Com民航信息化网络解决方案

    业务融合是网络一体化发展的基本要求,华为民航信息化网络解决方案体系结构在基础平台、业务管理、增值业务三个层面提供系统解决方案,构建端到端的可管理、全线速、全业务民航网络平台,全面支持Qos、安全、内容...

    华为3Com钢铁企业网络解决方案

    业务融合是网络一体化发展的基本要求,华为3Com钢铁企业网络解决方案体系结构在基础平台、业务管理、增值业务三个层面提供系统解决方案,构建端到端的可管理、全线速、全业务的钢铁企业网络平台,全面支持Qos、安全...

    cas 单点登录 解决方案.

    cas 单点登录解决方案可以在不同的层面上进行集成,例如在数据存储层面上的“数据大集中”,在传输层面上的“通用数据交换平台”,在应用层面上的“业务流程整合”,和用户界面上的“通用企业门户”等等。...

    VMware私有云私有云解决方案私有云服务案例私有云平台架构建设方案解决方案_CCB-84页.docx

    VMware 私有云解决方案架构主要由四个层面组成: 1. 基础设施层:提供了虚拟化基础设施,包括服务器、存储和网络等设备。 2. 虚拟化层:提供了 VMware vSphere 虚拟化平台,负责虚拟机的创建、管理和monitoring。 3...

    GPRS业务应用端到端优化解决方案

    目前市场上以GPRS为承载网的各类业务应用快速发展,客户端反馈过来的问题也随之增多。...本文旨在通过介绍端到端的优化概念和其在现网的实际应用,探讨当前在数据业务应用层面如何有效提升客户满意度的解决方案。

    IMS融合解决方案的框架

    阿尔卡特朗讯以清晰的理念和丰富完整的产品系列,为运营商构建先进的、可管理、可赢利的下一代融合网络。...其解决方案的框架,从接入连接层面到业务提供层面,包括了三个部分:联合控制、业务增强和业务工厂及支付。

    微软虚拟化hyper-v解决方案.pptx

    微软虚拟化 Hyper-V 解决方案 微软虚拟化技术是指通过虚拟化来构建新一代数据中心,提高资源的利用率和灵活性。虚拟化技术可以将计算机资源从物理机器中分离出来,实现了资源的共享和重复利用。 虚拟化技术可以...

    Biz BPMS商业业务流程管理解决方案 及 商业动态流程管理的完美解决之道

    Biz BPMS-业务流程管理解决方案(Business Process Management Solution) 是盈合软件公司提供的面向金融与电信级的商业动态流程管理解决方案。 Biz BPMS致力于解决商业流程动态化、商业逻辑动态化的难题,它的做法是...

    FB 业务层面内部控制的了解与评价(关键控制点的识别).zip

    FB 业务层面内部控制的了解与评价(关键控制点的识别).zip

    水利信息化网络解决方案

    华为3Com 水利信息化网络解决方案特点:提供完整的安全体系:提供完整的安全体系结构,覆盖了系统的各个层面,采用了包括防火墙、认证、授权、端口绑定等系列的安全措施,确保网络的安全性。提供了Quidview管理系统...

    网络安全解决方案.pptx

    网络安全解决方案完整内容 仅从技术层面考虑,一个完整的网络安全解决方案至少应包括以下内容。 (1)网络安全需求 (2)网络安全建设目标 (3)网络安全建设原则 (4)网络安全策略 (5)安全设备选型 (6)设备...

    数据中心存储解决方案.pdf

    华为ISP存储解决方案 2 云服务是ISP行业最具发展潜力的业务 协作及基础架构承载 EQUINIX RACKSPACE 超大型OTT AMAZO ALIBABA 虚拟化软件供应商 VMWARE MICROSOFT 子运营商 T-SYSTEM HKT 互联网接入供应商 TOWNGAS ...

Global site tag (gtag.js) - Google Analytics