`
java.jianan
  • 浏览: 19045 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
目前在网站的架构构成中普遍使用到缓存来提供WEB应用的性能,由于网站规模的不同,分别存在如下几种类型的缓存架构。

(1)单机缓存

(2)简单分布式缓存

(3)使用复制方式的缓存集群

(4)使用散列方式的缓存集群

(5)高性能高、可靠的缓存集群

下面对于上述几种缓存策略的实际应用的适用情况以及优缺点进行详细分析,当然并没有一个缓存的教条存在,有的只是参考案例,对于具体的应用来讲要具体分析。

(1)单机缓存

      单机缓存也就是WEB应用和缓存是同一个应用,也就是最简单的缓存策略,大家在程序中使用的static的HashMap、List这些都可以算作缓存的范畴。比较有代表性的单机缓存有OSCache、Ehcache。

      OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。OSCache有以下特点:缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。

      Ehcache来源于Hibernate,是一个纯java的在进程中的缓存,它具有以下特性:快速,简单,为Hibernate2.1充当可插入的缓存,最小的依赖性,全面的文档和测试。

      对于WEB应用程序采用单机缓存策略可以大大提高系统的吞吐量。笔者曾经在一个电信的WEB应用程序中使用OSCache来缓存数据,将主页面以及菜单对 应的页面级别的数据缓存起来,以及在不是通过“more”方式查询出来的数据也就是说在页面中可以直接访问的数据都缓存起来,定时进行更新,对于系统的性 能大大提升,对于数据库的访问量大大的减少了,主页面可以达到1000个并发。

      单机缓存的读写访问在所有的缓存策略中的性能最高,代价最小,在数据量不大并且在并发性能要求不是很高的情况下是非常合适的。单机缓存存在的问题是,可以 缓存的数据量受到限制,并且它和应用部署到同一个服务器上彼此竞争消耗系统资源,无法扩展,并且在WEB访问量上涨,WEB需要集群部署的时候在所有的集 群中都需要保存同样规模的缓存数据,不能彼此共享。

(2)简单分布式缓存

     简单的分布式缓存有两种代表性的部署方式。

     1、单实例的memcached部署方式

     在讲到缓存的时候,memcached可能就无人不知啦,可以考虑单独部署一台memcached服务器,作为中央缓存服务器,多个应用以都分别以客户端 的方式通过memcached服务器存取缓存数据,这样就避免了单机缓存方案中同样的数据需要在多个应用服务器中重复缓存的弊端。

      2、OSCache和Enhence的分布式缓存

      OSCache和Enhence可以使用JGroups进行缓存数据的广播,实现自动同步多个应用的缓存数据,在一个应用更新缓存之后该应用自动广播该缓存信息到其它应用的缓存,其它应用不需要再次访问数据库来再次加载数据更型缓存。

      上述两种简单的分布式缓存策略相对于单机缓存来讲存在较大进行,尤其是使用memcached的方式,由于memcached缓存的性能非常高,分离了应 用和缓存服务器,可以在集群部署WEB应用的时候大大提高系统的吞吐量。至于OSCache和Enhence方式实现的分布式缓存则还是基于单机缓存的方 式,只不过是优化了缓存数据的存放性能,基本限制没有得到改变。

(3)使用复制方式的缓存集群

在满足如下几个条件的时候可以使用复制方式的缓存集群策略:

1、需要缓存的数据量不是特别大,没有超过单机的限制

2、需要极高的读取缓存的性能

3、缓存中的数据变更的频率不是特别大

对于满足上述3点要求的WEB应用,我们可以采用复制方式的缓存集群来提高系统的性能。通常的方式为使用虚拟IP的方式将多个缓存实例作为一个集 群,该集群对于客户端应用来说是透明的,在一个缓存服务器宕机的时候,对于客户端来说没有影响。当一个应用更新了缓存的时候,该缓存实例通知集群中的其他 缓存服务器,由缓存集群自动完成各个缓存服务器中缓存数据的同步。

(4)使用散列方式的缓存集群

在满足如下几个条件的时候可以使用散列方式的缓存集群策略:

1、需要缓存的数据量特别巨大

2、需要极高的读取缓存的性能

3、允许单点故障
分享到:
评论

相关推荐

    Discuz.Cache

    《深入解析Discuz.Cache:大型网站缓存策略与实践》 Discuz.Cache,作为Discuz!论坛系统中的重要组成部分,是实现高效数据访问和减轻数据库压力的关键技术。它旨在为大型网站提供快速、稳定的数据访问体验,通过将...

    webtest:蜘蛛并测试您网站的缓存策略

    网站缓存策略的自动化测试。 这些脚本将抓取您的网站,生成用于测试的 URL,然后运行标头测试以确定每个页面的 HTTP 状态代码,以及您网站的页面是否正确使用缓存。 它将测试 Varnish 和 Akamai 配置。 它会生成一份...

    网站缓存核心技术

    ### 网站缓存核心技术概述 随着互联网技术的飞速发展,缓存技术成为支撑大规模网站高效稳定运行的关键组成部分之一。本文旨在深入探讨网站缓存的核心技术,并着重分析三种主流缓存技术——Ehcache、Memcached及...

    Web缓存策略:提升网站性能的高效途径

    在Web开发中,缓存是一种提高应用性能和用户体验的常用技术。通过合理利用Web缓存,可以减少...随着Web技术的不断发展,缓存策略也在不断进化。掌握并应用这些策略,将有助于构建更快、更稳定、更可扩展的Web应用。

    面试题缓存策略的选择篇.pdf

    在网站开发和维护过程中,缓存策略的选择是影响网页加载速度和用户体验的重要因素。合理的缓存策略可以减少服务器的请求次数,降低带宽消耗,提高网页的加载速度,同时还能减轻服务器的负载。本文将针对PHP网站开发...

    PHP版网站缓存加快打开速度的方法分享

    8. 网站缓存策略的测试和监控 实施缓存策略后,需要测试网站的性能提升,并监控缓存的命中率。可以使用各种性能监控工具和缓存分析工具来完成这一工作,及时调整缓存策略以获得最佳性能。 通过综合运用以上技术和...

    asp.net 提高网站速度及如何利用缓存

    ***网站性能优化是提升用户体验的重要途径,而缓存技术正是实现这一目标的...通过合理运用页面级输出缓存、片段缓存和缓存API,并结合实际应用场景灵活设计缓存策略,可以有效提升网站速度,为用户带来更好的使用体验。

    网站缓存机制的例子

    网站缓存机制是提高网页加载速度和降低服务器压力的关键技术,尤其在大型网站中不可或缺。简单来说,缓存就是将用户频繁访问的数据暂时存储在离用户更近的地方,以便下次访问时能更快地获取数据。这可以显著减少网络...

    缓存技术在视频网站中的应用

    缓存技术在视频网站中的应用是提高网站性能的关键策略,尤其是在高流量和大数据量的背景下。视频网站往往需要处理大量的...通过合理设计和实施缓存策略,视频网站能够更好地应对高并发访问,确保服务的稳定性和流畅性。

    详解php缓存技术用于开发网站

    ### 详解PHP缓存技术在网站开发中的应用 在当今高度依赖互联网的时代,网站的响应速度...然而,合理的缓存策略和管理机制是关键,开发者需要根据网站的具体需求和数据特性,灵活选择和调整缓存方案,以达到最佳效果。

    高性能网站架构设计之缓存篇

    总之,高性能网站架构设计中的缓存策略离不开像Redis这样的高效缓存系统。选择合适的客户端库,理解其工作原理,以及掌握配置和使用方法,都是优化网站性能的关键步骤。通过本文的介绍,我们已经迈出了使用Redis的第...

    将缓存加载 IIS

    IIS支持多种缓存策略,包括静态内容缓存和动态内容缓存。静态内容缓存是指服务器在首次接收到请求时将文件内容存储在内存中,后续相同的请求直接从内存中返回,无需再读取硬盘。动态内容缓存则涉及更复杂的处理,如...

    缓存数据解析—很详细

    在面对用户反馈网站运行缓慢或性能不佳的情况时,引入缓存策略是提升用户体验的有效手段。缓存通过减少对数据库的频繁访问,将常用数据存储在内存中,从而加快数据读取速度,降低系统负载。 系统缓存主要分为两类:...

    服务器缓存设置 工具

    在本文中,我们将深入探讨服务器缓存的工作原理、常见类型、设置方法以及如何利用工具优化缓存策略。 一、服务器缓存的工作原理 服务器缓存的基本思想是“存储-转发”,即当请求首次到达时,服务器会将数据保存在...

    ASP_NET中Web页面缓存技术探讨

    本文将详细介绍ASP.NET中的三种主要缓存策略:页面缓存、局部页面缓存以及应用程序数据缓存。 #### 一、页面缓存 页面缓存是指将整个Web页面的输出结果存储在缓存中,以便后续的请求可以直接从缓存中读取,而无需...

    页面缓存和清除页面缓存

    4. **缓存策略与配置**:ASP.NET还支持基于时间、依赖性、用户角色等条件的高级缓存策略。例如,可以设置缓存依赖于某个文件或数据库项,一旦这些依赖发生变化,缓存就会自动失效。这可以通过`CacheDependency`类...

    php缓存技术总结

    另外,对于数据内容变更的缓存策略同样重要,当数据库中的数据发生变化时,应该及时更新缓存,以保证用户获取的数据是最新。 通过上述介绍,可以看出PHP缓存技术在提升Web应用性能方面扮演着关键角色。合理运用各种...

    详解大型网站web服务器缓存.zip

    在构建大型网站时,Web服务器缓存是一种至关重要的优化策略,它可以显著提高系统性能和响应速度,降低服务器负载。...同时,合理设置缓存过期时间,确保数据的时效性和准确性,是优化缓存策略的重要一环。

    缓存机制demo

    总结起来,本项目“缓存机制demo”旨在教授如何在ASP.NET环境中实现高效的缓存策略,特别是针对aspx页面的缓存,以优化网站性能。通过学习和实践,开发者可以更好地理解和运用缓存技术,为大型网站的高并发场景提供...

Global site tag (gtag.js) - Google Analytics