目前在网站的架构构成中普遍使用到缓存来提供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、允许单点故障
分享到:
相关推荐
网站缓存策略的自动化测试。 这些脚本将抓取您的网站,生成用于测试的 URL,然后运行标头测试以确定每个页面的 HTTP 状态代码,以及您网站的页面是否正确使用缓存。 它将测试 Varnish 和 Akamai 配置。 它会生成一份...
在网站的开发过程中,经常碰到的一类需求场景是: 1:页面含热点新闻,热点新闻部分需要10分钟更新一次,而整个页面的...可以说,如果我们在开发网站过程中的缓存策略是不支持页面局部缓存的,整个架构就是不合理的。
网站架构中缓存的分类 影响缓存命中率的因素 缓存常见的模式和实现 缓存的更新过期和清除策略 包裹着缓存纱布的数据库 缓存存储方式的选择 缓存的同步问题 缓存的颠簸问题 分布式缓存系统的需求 Memcache的基本介绍 ...
虽然它实现的镜像并非传统意义上的完全镜像,而更像一个具有高速缓存机制和压缩传输的代理服务器,但是,它的实现比较简单,且通过ESI技术和缓存策略定制,能够大大减轻原有服务器的负载和网络流量,提高其可用性。
浏览器缓存将文件保存在客户端,好的缓存策略可以减少对网络带宽的占用,可以提高访问速度,提高用户的体验,还可以减轻服务器的负担。因此我们有必要了解它的实现原理,用来提高网站的性能。 当一个客户端请求web...
采用先进的静态HTML缓存策略技术,通过设置一个缓存时间,可以自动生成静态HTML文件,而无需人工生成HTML,从而减少维护工作量。 8)一键备份全站 轻松完成网站迁移 系统内置一键备份全站资料和数据库功能,让非技术...
搭建好删除缓存文件 功能介绍: 1、查看策略排行,牛气达人,跟买 2、查看行情,创建策略,新闻,资金记录、实名认证等等 3、后台用户管理、系统设置 4、全新版Thinkphp开发配资整站源码/实盘策略/在线配资/股票配资...
这个时候,就需要一个好的数据并发处理策略以及缓存策略。 另外,就是数据库的死锁问题,也许平时我们感觉不到,死锁在高并发的情况下的出现的概率是非常高的,磁盘缓存就是一个大问题。 C. 文件存贮的问题 对于一些...
4、内置网站优化功能SEO优化:系统后台可以设置伪静态、设置HTML静态缓存策略、搜索引擎优化设置、常用搜索引擎登录入口、生成网站地图、生成关键词内链、百度自动推送 功能模块: 功能列表 核心功能:电脑站、手机...
4、内置网站优化功能SEO优化:系统后台可以设置伪静态、设置HTML静态缓存策略、搜索引擎优化设置、常用搜索引擎登录入口、生成网站地图、生成关键词内链、百度自动推送 功能模块: 功能列表 核心功能:电脑站、手机...
为了提高系统的可用性和性能,可能会采用微服务架构、容器化部署(如Docker)、负载均衡、缓存策略等先进的技术手段。同时,系统还可能集成第三方服务,例如短信通知、支付网关等,以支持更广泛的功能需求。 总体来...
三、多套模板智能管理,内置14套不同风格、不同色调的模板 四、系统采用缓存机制,读取数据与打开页面速度更快! 五、功能强大的访问统计功能。 六、集成功能强大的ewebedit编辑器。添加资料更方便 ...
四、系统Cache缓存机制,读取数据与打开页面速度更快! 五、全后台操作管理,傻瓜式操作,会打字就可以管理网站。 六、新闻管理:能分大类和小类新闻,不再受新闻栏目的限制。 七、商品字段更丰富,如支持大小类选择...
首先分析了基于技术的开发框架、、 的主要技术原理和网站系统结构。...对系统进行优化,提出了改进的缓存替换策略并将其应用于系 统缓存中。在最后使用对网站系统进行性能测试,验证了提 出的优化方案的有效性。
为了提高系统的可用性和性能,可能会采用微服务架构、容器化部署(如Docker)、负载均衡、缓存策略等先进的技术手段。同时,系统还可能集成第三方服务,例如短信通知、支付网关等,以支持更广泛的功能需求。 总体来...
2.也将缓存在不同主机上的静态内容的缓存(请参阅“注释”以获取更多说明)注意:假设您有一个example.com网站,您已在该网站上通过扩展名设置了缓存策略。 现在,如果example.com上的任何页面链接到位于不同域...
10.2.3 Linux防火墙实现策略 第11章 网站建设实例 11.1 Apache、PHP、MySQL简介 11.2 Apache、PHP、MySQL的安装 11.2.1 安装和启动MySQL 11.2.2 安装PHP+Apache 11.2.3 启动Apache并测试 11.2.4 测试MySQL数据库 ...
采用先进的静态HTML缓存策略技术,通过设置一个缓存时间,可以自动生成静态HTML文件,而无需人工生成HTML,从而减少维护工作量。 8)一键备份全站 轻松完成网站迁移 系统内置一键备份全站资料和数据库功能,让非...