网站架构之缓存应用(1)概念篇

news/2024/5/20 2:06:31/文章来源:https://blog.csdn.net/weixin_34236497/article/details/85473912

    网站缓存这个话题并不新颖,但是能否将它用好,可是一门学问,同一件工具在不同人的手中会做出不同的事情来。这里我来分享总结下我对于网站架构中缓存应用的一些看法和经验,大家有好的想法可以补充。
   
    第一:缓存的一些基本概念。
        1:缓存(CACHE)与缓冲(BUFFER)的区别,我认为缓存可以在某种程序上理解成一级缓存(Primary Cache),数据全局共享。缓冲则属于二级缓存,只对一部分对象共享数据,二级缓存在某种程序上主要是降低一级缓存组件的访问压力以及提高缓存的存取效率。
        2:缓存的一些基本属性:命中率,表示缓存命中的次数/总的请求数,这是缓存设计的重要质量指标之一;缓存执行效率,例如GET,INSERT,DELETE等;容量,即缓存介质的容量最大值;成本,即开发成本,部署成本,软硬件成本。
        3:缓存的问题,存储介质的选择往往左右缓存的设计,缓存在不命中时往往会使性能下降。
    第二:网站中缓存的应用场景:
        1:可以缓存整个页面的html,提高访问响应能力;
        2:针对局部页面元素进行缓存;
        3:对复杂数据的结果进行缓存,例如一个查询需要结合多个数据集,然后根据这些数据集进行相应的运算,即使每个子集查询有缓存,但还是需要额外的运算,这种情况可以考虑缓存计算后的结果。
        4:对耗时的查询进行缓存,例如产品列表页的查询。
        5:和上下文相关的用户数据,例如用户从订单埴写页进入到订单成功页,或者是从产品列表页点击详细产品进行预订时的订单填写页,此时这两个页面之间都需要传递大量的相关数值,我们可以把所有的数值封装在一个类中,然后通过缓存进行通信。
    第三:影响缓存命中率的因素。
        1:数据时实性,每个业务系统都对自己的数据有相应的要求,有些数据的实时性非常强,像每日的股票信息,这种情况如果设置了缓存,缓存的命中率会特别低。
        2:缓存粒度问题,一般来说是缓存的跨度太大,即此时的KEY值包含的条件太多,会出现缓存命中率特别低的情况。
    第四:提高缓存命中率的方法:
        1:增大存储介质的容量;
        2:对非常热点的数据进行捕捉,可以采用实时更新缓存的方式来平衡缓存与实时性的问题,例如可以单独开启一个后台服务来定时做更新缓存的工作。
        3:调整缓存KEY值的算法,尽量保证缓存KEY的细粒度,KEY-VALUE就是很好的细粒度例子。
        4:根据业务调整缓存的过期策略。
       
    第五:如何实现缓存组件:
        1:采用二级缓存架构,即在web server上设置二级缓存,这里的二级缓存即上面的提到的缓冲,只对具体的webserver进行数据共享,二级缓存可以考虑采用微软企业库的缓存组件来完成。由于一级缓存的实现往往都是单独的服务器,为了减少缓存服务器的压力,在webserver上对数据进行缓冲,在降低缓存服务器压力的情况下最大的好处在于缓存的存取速度上。
        2:一级缓存由单独的缓存服务器来完成,至于缓存服务器采用哪种缓存方案,可以根据不同的场景来决定。如果考虑到部署的方便性,可以采用微软企业库来完成一级缓存,如果服务器允许,可以采用memcached来实现。
        cache服务器采用微软企业库实现的优缺点:
        1:优点,开发以及部署都非常容易,不需要安装第三方软件等等;
        2:缺点,需要自己开发客户端功能以实现分布式,这里我们可以采用一致性hash算法来实现,同时如果服务以WCF形式公布开,在访问效率上也不是最优的,比起memcached的通信方式要差一些。
        memcached的优缺点:
        1:优点,通信方式比起wcf要高;
        2:缺点,需要第三方服务的支持,需要在服务器上安装memcached服务,这好像也不是什么重要的缺点。


        最后,贴出网站网页在数据访问上的流程图,供大家参考,在下面的文章中我会把实现的方案分享出来。
     
       

 


作者:姜敏
出处:http://www.cnblogs.com/aspnet2008/ 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_803057.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享一个国内的网站-有了它你还用新浪微博吗

最近从一个介绍WEB2.0的网站看到这样一篇介绍,有这样一个网站,提供随时随地的日记记录功能。 久久日记,一个基于移动终端的功能软件。 为用户提供了一个方便记录下自己碎碎念的日记本服务,在这里,用户对生活的感悟可以…

200佳优秀的国外创意设计网站推荐【全集】

您可能还喜欢 寻找网页设计灵感的27个最佳网站推荐最新30个漂亮的个人作品集网页设计案例分享35个非常漂亮的单页网站设计案例60佳灵感来自大自然的网页设计作品欣赏分享100佳精美的作品集网站设计案例这个系列将向大家200佳非常棒的国外设计网站,包括网页设计、名片…

Asp.Net知识锦分享,徐汇区网站设计

导读:作者Alexis对Web方面颇多兴趣,业余时间自学Silverlight、WPF、HTML5,时而做些小东西聊以自足。他总结了一篇.NET的文章《Asp.Net知识锦分享》,以下是文章内容: 今天是春节的最后一篇博客了,在这里给大…

PyType_Type和PyBaseObject_Type

PyType_Type和PyBaseObject_Type一. 类型的类型—PyType_Tpye(type的实体)二. 类型之基—PyBaseObject_Type(object的实体)PyObject和PyTypeObject内容的最后指出下图中对实例对象和类型对象的理解是不完全正确的, 浮点类型对象全局唯一,Python在C语言层…

开源免费cms---十大主流建站的CMS系统介绍

开源免费cms建站系统哪个好(十大主流建站的CMS系统介绍) 动易 CMS,博客系统 drupal 不适合中国的企业网站建设。 joomla! drupal适合程序员级别的人使用,方便做二次开发,可以做出任何你想要的网站&#…

网页编码_怎样查询HS编码?这个功能强大的网站一定要收藏!

说起HS编码,相信大家都不会陌生,它就是海关编码。是一部供海关、统计、进出口管理及与国际贸易有关各方共同使用的商品分类编码体系。HS编码对于从事进出口业务的企业来说,是入门基础,它可以帮助大家更快速地分类商品。大家该如何…

网页php花哨功能_科学的设计你的网站网页

在网络设计领域关于Eye-Tracking的研究十分火爆,但是如何把这些研究结果转变为具体可行的设计来运作依旧是个难点。以下就是一些来自于Eye-Tracking研究结果的窍门,可以为改进你的网站设计提供些意见:1.对比图像,文字更具吸引力与…

SharePoint 2013 新建网站集图解

原文:SharePoint 2013 新建网站集图解前言:接触SharePoint的人可能是越来越多,但是很多人一接触就很迷茫,在技术群里问如何新建网站集,这样一篇图解,帮助新手学习在搭建好SharePoint环境之后,如何创建一个网…

高并发高流量网站架构

Web2.0的兴起,掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们。但Web2.0以用户为导向的理念,使得新生的网站有…

荷露叮咚wp建站系列视频课程.3WordPress功能菜单介绍

安装后的WordPress在E:\xampp\apps\wordpress\htdocs(历史版本有在E:\xampp\htdocs目录下的情况),将E:\xampp\apps\wordpress\htdocs目录下的wordpress文件夹拷至E:\xampp\htdocs目录也是可以的。 常用功能(按常规操作先后顺序): …

codeigniter 禁止ip登录_通过Nginx来实现禁止国外IP访问网站

前言: 先来说说为啥要写这篇文章,之前小编看了下nginx 的访问日志,发现每天有好多国外的IP地址来访问我的网站,并且访问的内容基本上都是恶意的。因此 我决定 禁止国外IP 来访问我的网站想要实现这个功能有很多方法,下…

【转载】Windows server 2008 IIS7发布asp.net mvc网站css、js脚本无法访问 问题解决

找到发布的对应站点在功能视图中找到“身份验证“双击打开 找到“匿名身份验证” 右击选择“编辑”或是在右侧操作栏中点击“编辑…” 打开对话框“编辑匿名身份验证凭据”对话框,选中“应用程序池标识(P)”选项,点击确定 http://…

网站指纹识别工具——WhatWeb v0.4.7发布

2019独角兽企业重金招聘Python工程师标准>>> WhatWeb是一款网站指纹识别工具,主要针对的问题是:“这个网站使用的什么技术?”WhatWeb可以告诉你网站搭建使用的程序,包括何种CMS系统、什么博客系统、Javascript库、web服…

Wordpress 网站搭建及性能监控方法详解!

前言 说到 Wordpress,大家往往想到的是博客,其实,如今的 WordPress 已经成为全球使用量最多的开源 CMS 系统。并且,如果你有一定的技术基础稍加改动,就可以搭建出新闻网站、企业网站、电影网站,甚至是商城系…

转:大型网站架构系列:负载均衡详解(2)

一、软件负载均衡概述 硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用。因此软件负载均衡在互联网领域大量使用。常用的软件负载均衡软件有Nginx,Lvs,HaProxy等。本文参考大量文档&a…

SSH 网站制作之文件上传

2019独角兽企业重金招聘Python工程师标准>>> 最近学习用SSH做网页,遇到了文件上传的一些知识,下面就总结总结。 1.下面是一个文件上传的JSP页面 其中,表单中enctype"multipart/form-data"的意思,是设置表单的…

程序员面试过关必备网站,你用过几个?

对于程序员而言,面试所谓是人生重要的一件事情,在这之前,还是有必要刷一些编程面试题,为面试做好充足的准备! 今天小编给大家分享一些面试相关网站,给大家面试来一波神助攻噢! 在Reddit网站上&a…

程序员常用网站:让代码更简单

说起程序员,总有那么几个网站是程序员不可或缺的,小编办公室的程序员就常常用这几款网站,你用过么? Stack Overflow 这个网站,就算不常用,每次搜索编程相关都能看见它。当你遇到任何编程问题,…

找工作的网站有哪些好

2015年的时候,市场调查报告显示财务管理和计算机科学与技术专业的就业率最高。因此15年就会有很多人报考会计和计算机专业。据现在的市场来看,计算机专业的很吃香。15年报考计算机专业的相对就会比财务专业的会好很多。三顾人才是一家专业做人才招聘的平…

找工作什么网站最好

一般来说,程序员 比较木讷,很多程序员写代码很厉害,但是一到面试就什么都说不粗来了,即使说粗来了 ,面试官也没有了解到你那非常牛掰的技术水平。最后应聘不上也是自然的。 三顾人才根据自己在人才市场的经验&#xff…