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

news/2024/5/8 17:09:09/文章来源:https://blog.csdn.net/weixin_30667649/article/details/95278076

    网站缓存这个话题并不新颖,但是能否将它用好,可是一门学问,同一件工具在不同人的手中会做出不同的事情来。这里我来分享总结下我对于网站架构中缓存应用的一些看法和经验,大家有好的想法可以补充。
   
    第一:缓存的一些基本概念。
        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/ 

 

 

转载于:https://www.cnblogs.com/ASPNET2008/archive/2011/01/15/1936461.html

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

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

相关文章

各大搜索引擎网站提交端口的快速通道

一个免费登录网站只需提交一页(首页),百度搜索引擎会自动收录网页。 符合相关标准您提交的网址,会在1个月内按百度搜索引擎收录标准被处理。 百度不保证一定能收录您提交的网站。 提交地址 : http://www.baidu.com/sea…

devc 能优化吗_杭州诠网科技解析seo优化能获得有效客源吗?

赢得顾客是每个企业体验开发中最需要解决的问题。因为,在丰富多彩、快速发展的互联网平台上,消费者面对的信息选择越来越多,诱惑也越来越多,导致获取客户的成本越来越高。因此,企业只有解决好顾客获取问题,…

写apache构建、配置web网站之原创博文有感!

写apache构建、配置web网站之原创博文有感! 一转眼写了七篇有关apache建站配置的文章了,但是总感觉许多好东西没有和朋友们分享完毕。上面的这张图是我没写完一个技术就存在一个文件夹中的截图,大家也许会问我为什么没有第二篇,…

html5的网络书店图书网站代码_除了中国知网,还有什么学术网站?

中国知网的名气在国内是非常大的,大多人检索下载文献,都会选择知网,但是知网也有一些缺点,比如价格一直是大家吐槽的地方,还有一些文献不能下载等等。那么除了中国知网,还有哪些学术网站呢?小编…

php增添删改界面,0070 PHP编程前端网站增加新闻信息显示功能

原标题:0070 PHP编程前端网站增加新闻信息显示功能上节课完成了整个后台网站的功能开发,可以新建编辑删除查询新闻信息数据。这节课来到前端网站,增加新闻信息一览显示页面和详细页面。编写新闻一览网页一览页面可以参照后台的一览查询页面&a…

基于django的视频点播网站开发-step7-我的收藏喜欢功能...

从本讲起,我们会讲到个人菜单中另外两个比较重要的功能,“我的收藏”与“我的喜欢”。感兴趣的同学可以点击网站的右上角,即可弹出个人菜单,你就能看到“我的收藏”与“我的喜欢”了。通过学习这两个功能,我们会加深对…

SEO优化,网站沙盒期,到底存在吗?

对于SEO人员而言,特别是新建立的网站,我们经常会遇到一个非常常见的问题: 那就是新建页面长时间不被收录,而网站索引量却在不断增加。 网站日志中的爬行,也非常频繁。 这个时候有人讲,网站进入沙盒期…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

hexo 本地编辑md文件_「原创」手把手教你使用Hexo和GitHub搭建自己的个人博客网站...

安装nodejs环境这个直接搜索安装即可,安装完成之后,通过如下命令检测环境变量是否安装成功:λ node -v# 输出版本号v12.13.1正确输入版本号即可。安装cnpmcnpm是淘宝镜像,可以加快依赖的安装速度npm install cnpm -g --registryht…

第一次网站设计 请大家多多指点

第一次做网站设计 这是一个ASP.NET 鲜花网 希望大家能多提点意见 改善它完善它。谢谢了! 转载于:https://www.cnblogs.com/Simcoder/archive/2010/04/06/1705220.html

漂亮的html静态页面_静态网页对网站建设越来友好

企业网站建设开发设计了网站內容智能管理系统,这就引起一个问題,针对企业公司来讲,在执行网站建设新项目的情况下,静态数据化的html网页页面,更合适企业进行互联网营销。就算有时候有网站內容升级,要是不经…

html搜索框_SEO搜索引擎的工作原理

了解一下搜索引擎优化的原理,就会知道为什么要这样做了。第一步:蜘蛛爬行轨迹搜索引擎是通过一种特定规律的程序跟踪网页的链接,从一个链接爬到另外一个链接,像蜘蛛在蜘蛛网上爬行一样,所以被称为“蜘蛛”也被称为“机…

We7荣获“政府网站群建设最佳产品奖”

8月23日,由中国信息化推进联盟、中国计算机行业协会、中国计算机报社等国家信息化领域权威机构和权威媒体共同组织开展的“第四届中国行业信息化奖项评选活动暨2012中国行业信息化颁奖盛典”在北京国宾酒店隆重举办。来自行业信息化领域的500余位企业代表、政府领导…

蜘蛛搜索引擎_搜索引擎蜘蛛为什么对网站不爬行呢?

在网站的优化过程中,很多优化人员都会遇到网站不经常收录,或者网站日志里都没有蜘蛛爬行的情况,如果新站遇到这样的问题还算正常,但是长期网站不被收录,网站就不会有排名和权重,更不会给企业带来更多的好处…

两青年更改源代码 “黑”十多家政府网站, 不是技术高,是政府网站安全性太低...

[提要] 两名19岁青年,利用后门程序先后侵入最高检察院等十多个政府机关的官方网站后台,更改网页源代码为其他网站牟利。公诉人提出,范某、文某侵入国家事务领域的计算机信息系统,多次利用后门程序非法控制非国家事务、国防建设和…

python plt画图_「figure」【Python】 【绘图】plt.figure()的使用 - seo实验室

figure 1.figure语法及操作 (1)figure语法说明 figure(numNone, figsizeNone, dpiNone, facecolorNone, edgecolorNone, frameonTrue) num:图像编号或名称,数字为编号 ,字符串为名称 figsize:指定figure的宽和高,单位为英寸; dpi参…

从零开始编写自己的C#框架(25)——网站部署

导航 1、关掉访问保护 2、发布网站 3、复制网站到服务器 4、添加新网站 5、设置网站访问权限 6、设置文件夹访问权限 7、控制可更新文件夹执行权限 8、设置“应用程序池”.net版本与模式 9、附加数据库 10、添加数据库访问用户 11、设置数据库链接 12、部署注意事项 对于网站的…

转载——网站转接支付宝解决方案

大型网上购物系统除了能让会员选择货到付款结账方式外,还应该提供一些更方便快捷的网上支付方式。如果网上商店没有足够的实力提供会员直接在网站中建立现金账户的功能,就可以将订单信息转接到支付宝,让会员从支付宝付款。当然就算会员可以在…

网站回到顶部按钮JS

为什么80%的码农都做不了架构师&#xff1f;>>> <script type"text/javascript"> $(function(){$(window).scroll(function(){$(window).scrollTop()>1000 ? $("#gotopbtn").css(display,).click(function(){$(window).scrollTop(0)…