钟毅
摘要:为了能够更好地满足网站对于信息发布之后在实时性方面的要求,应当针对目前使用内存来存放数据库备份的方式,创建以内存为基本缓存模型的首要保存点,数据库则成了数据备份的形式,如此不仅能够满足信息所具有的实时可用性,而且还能保障数据的安全可靠性。同时,在大型Web网站的具体运用中,还可运用OSCache技术来缓存各类数据对象以及表现层,如此即可明顯地提升系统的响应速度,改进系统的各项运转性能,进而实现系统总体性能的优化。文章对Web网站缓存技术进行了概述,并着重论述了Web网站缓存模型的OSCache技术的优化措施。
关键词:Web网站;缓存技术;缓存模型;OSCache技术
如今,缓存技术已经被大量运用在多种类型的Web网站之中。按照网站访问量的差别,每一网站均适合于自身的缓存方案。就缓存的实质来看,是指把存于硬盘之中的数据,通过KEY-VALUE的方式存到内存之中,从而提高用户获得数据的速度。在当前的信息化时代下,许多大型Web网站,在面对着巨额用户的访问以及高并发的请求,承担了非常大的压力。一旦在5-10 s内没有接收到其所需之网页,使用者可能就会对这个网站的感受度变差。在网站响应过程之中,引擎编译页面和Web读写数据库是系统中最为常见的两个问题。当前,常见的解决方式主要有运用高性能服务器、数据库以及编程语言,或是运用高性能Web器具[1]。但是,单一或组合运用上述方案还无法全面解决Web网站在高负载与高并发情境之下出现的性能问题,而且使用者人数的迅速增多,还会面临不断增加的软硬件投资问题。
1 Web网站缓存技术概述
依据一项统计,Web系统之中要进行处理的数据中大概有20%-50%是短时间中难以出现变化的,然而编程过程中往往把其定义成动态性内容加以输出,如此就会消费数据库以及Web服务器的各类资源。比如,电商网站之中对于商品所作的定义在短时间内极有可能难以改变,但在一段时间以后还是有可能出现变化的,所以在使用户查看商品列表过程中,Web程序均需与各类数据库加以交互。再如,不同的用户在同一时段访问相同统计报表之时,反复形成报表也会耗费非常多的数据库资源,从而对系统运转产生极大负担。据此,可以在Web开发或者部署过程中引入缓存技术,使用Cache缓存页面加以输出,如此即可明显改进Web系统的运转性能以及稳定性。如今,常见的缓存技术包括了分布式Cache服务器缓存技术和OSCache缓存技术。前者主要是在当地存储经常需要访问的信息。前端的路由可以把普通Web重定向至本地Cache服务器以切实降低服务器负荷。后者是运用OSCache技术对Web页面加以细化,并实施好缓存操作,以求在不大量提高系统投资的状况下实现提升系统性能的目的[2]。
2 Web网站缓存模型的优化措施
Web网站缓存模型的基本框架为:通过数据爬虫来各类信息,并保存到数据库之中。此时,数据库之中的数据则进入到了待审核状态,被审核数据可以分成通过与不通过两大类。通过数据保存于内存循环数组当中,而不通过数据则置为无效状态。将保存于内存之中的各类数据定时同步至数据当中。在Web网站第一次启动之时,就会从数据库当中把相应数据同步至内存之中。网站缓存应用以内存为首要保存点,审核就是发布的方式,能够推进信息的曝光度。当网站在内存之中定义了长度是5 000的循环数组之后,即可作为优惠信息保存于数据结构之中。5 000条数据一般都能保障3d中的数据均可被保存于数组之中,且在数组初始化过程中就为其初始化进行赋值,其中均保存有数据结构信息,如此即可节约新信息插入过程中的动作,而且还能够节省内存分配所产生的部分时耗。Web网站的服务器端通常所使用的为ns服务,而在.NET平台则使用了垃圾回收体系,会造成分配与回收资源过程中对CPU与内存之消耗。如此一来,在每一次插入新数据之后,实际上即是实施了更新性操作。这样即可为循环数组的头与尾分别确定了整形变量Headlndex和Taillndex,从而代表了目前数组之中首位与最后一位数据所处的位置。
在每一次有新的数据需要插入到数组之中,就会依据循环数组的头指针与尾指针之大小来实施差异化操作:(1)在Taillndex大于Headlndex,而且Taillndex并不等于4 999之时,此时代表数组Taillndex之后的数组数据都能进行更新,只要把Taillndex加上l,并且把Taillndex指向之数据重新更新为可插入数据就可以了。(2)在Taillndex小于Headlndex,或是Taillndex等于4 999之时,这时就表示数组之中的空数据己被全部用完,那就需要把最早插入的数据重新更新为如今所插入之数据,也就是执行Headlndex加上l。与此同时,还应当把Headlndex指向的数据充分更新成所插入之数据,而且同时还应当为Taillndex加上1。一旦Headlndex或是Taillndex超过了4 999,均应置为0。(3)在重新部署Web网站的过程中,在对网站进行部署的同时,还应当把Web数据库之中依据时间逆序排列的前5 000条数据重新插入循环数组当中。一直到再次插入到新数据之后,再来操作步骤二。(4)实施Web分页缓存控制。因为用户所查看的数据均是依据页面来得到数据的。一旦数据运用循环数组之中的结构保存于内存之中,就应当对数据按照页为基本单位进行组织,从而便于用户进行访问。Web网站运用两级Key-Value的形式加以组织[3].
3 Web网站OSCache技术的优化措施
OSCache技术是基于J2EE架构对Web应用层而实施的缓存开源项目,如今已经在诸多大型Web项目之中得到了更多地运用。它不但能够兼容各类JSP Web容器,而且还可利用内存、硬盘或别的存储资源为其缓存区,且支持对一部分或者整体页面加以缓存。在开发过程中还可依据差异化需求与环境而应用差异化的缓存措施,以求在系统性与实时性上得到最好的平衡。依据缓存范围的差异,OSCache主要支持两类缓存形式,其一是缓存JSP页面当中的一些或整体内容,其二是对数据对象加以缓存,能够产生更大的缓存粒度。具体有3种实现方式:(1)对JSP Cache标签进行缓存。使用OSCache之中的Cache标签,可对含于标签之中的段落内容实施缓存化处理,处理形式主要取决于程序对于Cache属性的设置。Cache属性为标识缓存之关键词。在相应的范围之中,一定是唯一存在着的。默认Key通过被访问页面中的URL与请求字符串联结而成。(2)运用CacheFilter来体现对页面的总体缓存。CacheFilter能够用在页面级缓存上,主要是对Web运用中的部分动态页面实施缓存,特别是对需生成的格式表格或者报表页面,主要的实现方式是在设置Web应用过程中,通过配置CacheFilter的属性以确定缓存的策略。(3)面向对象实施缓存。Web程序可运用继承Administrator基类,对其中的持久化对象实施缓存。运用以上方案之后,使用ApplicationStressTooI压力测试工具,能够并发出100个线程登录以上页面,平均的页面响应时间从没有采取缓存技术时的87 ms降低至59 ms,而数据库服务器的CPU占用率的峰值则从2g%下降至l7%[4]。
4结语
总的来说,Web网站的启动速度与使用者离开速度之间具备了最直接的联系。在硬件资源无法得到快速提升的情况下,就一定要用最优化的措施来得到最好的响应成效。当然,Web网站的优化措施,一定要符合本网站的具体运行状况。在目前的J2EE/J2SE框架体系之中,OSCache能够提供Web应用层实现缓存需要的各项基本功能。运用OSCache技术,可更加灵活简便地处理好Cache对象,切实降低数据库服务器和Web服务器在性能上的消耗,如此即可提升Web网站的总体响应度以及负载水平。
[参考文献]
[1]肖宁.Web缓存技术研究与应用[J].计算机光盘软件与应用,2012 (8):145.
[2]孙惠洋,李睿达.PHP高性能网站缓存技术探讨[J]通信管理与技术,2015 (4):75
[3]孟彩霞.Web缓存容量的优化技术研究[J]电子设计工程,2016 (8):98-101
[4]吴庆鑫,魏振钢,张小龙.Web开发中分布式缓存技术的研究[J].中国科技信息,2017 (13):62-64