JAVAWEB缓存技术
- 格式:doc
- 大小:375.52 KB
- 文档页数:44
8种缓存框架介绍缓存框架是一种用于存储和管理缓存数据的软件工具或库。
它们用于提高应用程序的性能,减少数据库或其他远程资源的访问次数。
在本文中,我们将介绍8种流行的缓存框架,包括Redis、Memcached、Ehcache、Guava Cache、Caffeine、Hazelcast、Infinispan和Apache Geode。
1. Redis: Redis是一个基于内存的缓存框架,提供了丰富的数据结构和灵活的功能,包括缓存、消息队列和数据持久化。
Redis的性能出色,并且具有高可用性和扩展性。
2. Memcached: Memcached是另一个流行的基于内存的缓存框架,广泛用于提高Web应用程序的性能。
它具有简单的架构和易于使用的API。
Memcached可以在多台服务器上进行水平扩展,以提供更高的负载能力。
3. Ehcache: Ehcache是一个Java缓存框架,可以用于将缓存添加到应用程序中。
它具有简单易用的API,并提供了多种缓存策略,如LRU (最近最少使用)和FIFO(先进先出)。
Ehcache还支持磁盘持久化和分布式缓存。
4. Guava Cache: Guava Cache是Google开发的一个轻量级缓存库,可以在本地JVM中实现缓存功能。
它具有内存敏感的淘汰策略和异步加载机制,可以优化资源利用和应用程序响应时间。
5. Caffeine: Caffeine是另一个基于本地内存的缓存库,由Google开发。
它被设计为高性能、无锁的缓存框架,并且具有比Guava Cache更高的吞吐量和更低的延迟。
6. Hazelcast: Hazelcast是一个分布式缓存框架和数据网格,可以在多个服务器上共享缓存数据。
它提供了分布式数据结构和分布式计算功能,并支持高可用性和容错性。
7. Infinispan: Infinispan是另一个开源的分布式缓存框架,用于构建高性能和高可靠性的应用程序。
前端开发中的页面缓存与更新技巧随着互联网的发展,前端开发在设计和开发网页时起到了至关重要的作用。
而页面缓存和更新技巧则是前端开发中的关键环节之一。
本文将介绍一些常见的页面缓存和更新技巧,帮助前端开发人员优化用户体验。
一、了解页面缓存的重要性在讨论页面缓存技巧之前,我们首先要了解页面缓存的重要性。
页面缓存是指将网页的部分或全部内容保存在本地设备或者代理服务器中,以便在用户再次访问相同网页时可以直接从缓存中获取,节省了服务器的资源开销和用户等待时间。
页面缓存可以提高网页的加载速度,并降低对服务器资源的需求。
二、利用HTTP头部设置缓存策略在前端开发中,可以通过设置HTTP头部来控制页面的缓存策略。
常用的HTTP头部字段有"Cache-Control"和"Expires"。
"Cache-Control"字段用于设定缓存的有效期,可以设置为"no-cache"禁止缓存,"max-age"设定缓存过期时间等。
"Expires"字段用于指定缓存的过期时间。
另外,还可以使用"Last-Modified"和"Etag"字段来判断文件是否被修改过。
服务器会在响应头中添加"Etag"字段,表示文件的唯一标识符;客户端在后续请求中会将该值通过"If-None-Match"字段发送给服务器,服务器根据该值判断文件是否发生变化,如果未发生变化,则返回304状态码,表示文件未被修改,客户端可以直接从缓存中获取文件。
三、使用LocalStorage和SessionStorageLocalStorage和SessionStorage是HTML5中引入的两个Web存储标准。
它们可以用来缓存页面中的数据,以减少页面加载时间和网络请求。
网站开发中的数据缓存和异步加载技术在当今的信息时代,网站已经成为人们获取信息和交流的主要平台。
作为网站开发人员,我们必须不断地追求技术的进步和发展,以提供更好的用户体验。
其中,数据缓存和异步加载技术是非常重要的。
一、数据缓存技术在网站开发中的应用数据缓存是指将数据临时存储在高速缓存中,以便更快地获取和使用。
在网站开发中,数据缓存技术被广泛应用于提升网站性能和响应速度。
1. 页面缓存当用户访问网站的某个页面时,页面的内容会被缓存在服务器或客户端的缓存中。
这样,当其他用户再次访问同一页面时,就可以直接从缓存中获取,而不需要重新生成页面。
通过使用页面缓存技术,可以大大减少服务器的负载,提升网站的响应速度,同时节省带宽的消耗。
2. 数据库缓存在网站开发中,数据库是存储数据的重要组成部分。
为了提高数据库的性能和减少数据库的压力,可以使用数据库缓存技术。
数据库缓存将查询结果缓存起来,并根据缓存的有效期设置,减少对数据库的实际查询次数。
这样可以大大提升网站的性能和响应速度。
3. 对象缓存除了页面缓存和数据库缓存外,对象缓存也是一种常用的数据缓存技术。
对象缓存是将经常使用的对象存放在缓存中,以便快速获取。
通过使用对象缓存,可以避免重复创建对象的开销,提高网站的性能和响应速度。
二、异步加载技术在网站开发中的应用异步加载是指在网页加载过程中,通过JavaScript等技术,将某些资源的获取和渲染工作放在页面加载完成后进行,从而提高页面的加载速度和用户体验。
1. 图片异步加载在网站开发中,图片是占据大量带宽的资源之一。
为了加快网页的加载速度,可以使用图片异步加载技术。
通过在页面加载完成后再加载图片,可以减少页面的请求次数,提高网站的性能。
2. 内容异步加载除了图片外,网页中的其他内容,如文字、视频等,也可以通过异步加载的方式来提高页面的加载速度。
比如,先加载页面的核心内容,然后在页面加载完成后再加载其他辅助内容。
这样可以提高网站的性能和用户体验。
java redis 缓存分页实现原理Java Redis缓存是一种用于在Web应用程序中提高数据访问性能的技术。
它通过将常用的数据存储在内存中,以便更快地访问和获取,从而减少了对数据库的访问。
分页是Web应用程序中常见的功能之一,它允许用户在列表或表格中浏览数据,并按页查看数据,以减少数据量和提高用户体验。
Java Redis缓存的分页实现原理是,将查询的结果集划分为多个页,并将每个页的数据存储在Redis缓存中,以供后续的访问和查询。
下面将详细介绍Java Redis缓存分页的实现原理。
1.将查询结果集分页:在数据库查询之后,将结果集按照每页显示的数量划分为多个页,例如每页显示10条数据,将结果集分为若干个包含10条数据的页。
这样可以方便后续的分页访问和查询。
2.将每页的数据存储到Redis缓存中:对于每个分页的数据,将其存储到Redis缓存中。
可以使用Redis 的数据结构Hash或List来存储每页的数据。
对于Hash结构,可以使用页号作为Key,对应的数据作为Value,将所有页的数据存储到一个Hash中。
对于List结构,可以使用一个List来存储所有的分页数据,每个分页数据作为一个元素。
通过使用Redis缓存,可以提高分页的访问速度和性能。
3.使用Redis缓存进行分页查询:当用户请求分页数据时,首先从Redis缓存中获取对应页的数据。
如果缓存中存在该页的数据,则直接返回给用户;如果缓存中不存在该页的数据,则从数据库中查询该页的数据,并存储到Redis缓存中,以供后续的查询和访问。
4.缓存失效和更新:为了保证数据的实时性,需要处理缓存的失效和更新问题。
当用户修改或删除数据时,需要更新对应页的数据缓存,或者将所有缓存的数据进行失效处理,以保证数据的一致性。
可以通过监听数据的修改和删除操作,在数据库操作完成后,更新或失效对应的缓存数据。
5.缓存过期时间设置:为了控制内存使用和避免缓存数据过时,可以设置缓存数据的过期时间。
javaweb概述JavaWeb是指使用Java语言开发的Web应用程序。
它是一种基于Java技术的Web开发框架,可以用于构建各种类型的Web应用程序,如电子商务平台、社交媒体应用、在线教育平台等。
JavaWeb的核心技术包括Java Servlet、JavaServer Pages(JSP)、JavaServer Faces(JSF)和JavaBeans。
其中,Java Servlet是处理HTTP请求和响应的Java程序,可以接收客户端的请求并生成响应。
JSP是一种在HTML中嵌入Java代码的技术,用于动态生成页面内容。
JSF是一种基于组件的Web框架,可以简化用户界面的开发。
JavaBeans是可重用的Java组件,用于处理业务逻辑。
使用JavaWeb开发Web应用程序的过程中,通常会使用一些开发工具和框架,如Eclipse、IntelliJ IDEA、Spring和Hibernate。
这些工具和框架可以提高开发效率,减少代码量,并提供一些常用功能的封装。
例如,Spring框架提供了依赖注入和面向切面编程的支持,使得开发者可以更容易地管理对象之间的依赖关系和处理横切关注点。
Hibernate框架则可以简化与数据库的交互操作,提供了对象关系映射(ORM)的功能。
在开发JavaWeb应用程序时,需要遵循一些开发规范和最佳实践。
例如,需要使用MVC(Model-View-Controller)架构模式对应用程序进行组织,将业务逻辑、用户界面和数据访问逻辑分离开来,提高代码的可维护性和可测试性。
此外,还需要考虑安全性和性能优化等方面的问题。
例如,可以通过使用HTTPS协议进行数据传输加密,使用缓存技术减少数据库的访问次数,使用CDN加速静态资源的加载等。
JavaWeb应用程序通常部署在Web服务器上,如Apache Tomcat、Jetty等。
Web服务器负责接收客户端的请求,并将请求转发给相应的Java Servlet进行处理。
Java中的缓存技术缓存技术在软件开发中起着至关重要的作用。
它可以提高系统性能、降低对底层资源的访问频率,从而减轻服务器负载并改善用户体验。
在Java开发中,有许多可供选择的缓存技术。
本文将介绍几种常见的Java缓存技术,以及它们的应用场景和原理。
一、内存缓存内存缓存是最常见的缓存技术之一,它将数据保存在内存中,以提高读取速度。
在Java中,可以使用集合框架中的Map接口的实现类来实现内存缓存,如HashMap、ConcurrentHashMap等。
这些类提供了快速的Key-Value存储,通过Key快速查找对应的Value,以实现快速访问缓存数据。
内存缓存适用于数据读取频繁但不经常更新的场景,例如字典数据、配置信息等。
需要注意的是,内存缓存的容量是有限的,当缓存数据超过容量限制时,需要采取一些策略来处理,如LRU(最近最少使用)算法将最久未访问的数据移出缓存。
二、分布式缓存分布式缓存是一种将数据存储在多台服务器节点上的缓存技术。
Java中有多种分布式缓存框架可供选择,如Redis、Memcached等。
这些框架提供了高性能、可扩展的分布式缓存服务,可以在集群中存储大量的数据,并提供分布式缓存的管理和查询接口。
分布式缓存适用于需要同时服务大量客户端并具有高并发读写需求的场景,例如电商网站的商品信息、社交网络的用户数据等。
通过将数据存储在多台服务器上,可以提高系统的可用性和扩展性。
三、页面缓存页面缓存是将网页内容保存在缓存中,以减少对数据库或后端服务的访问频率,从而提高页面的加载速度。
在Java中,可以通过使用Web服务器或反向代理服务器的缓存功能,例如Nginx、Varnish等,来实现页面缓存。
页面缓存适用于内容相对静态或者不经常变化的场景,例如新闻网站的文章、博客网站的页面等。
通过将网页内容保存在缓存中,可以避免每次请求都重新生成页面,大大提高响应速度和系统的并发能力。
四、数据库缓存数据库缓存是将数据库查询结果保存在缓存中,以减少对数据库的频繁查询,提高系统的响应速度和并发能力。
java二级缓存原理Java二级缓存原理随着互联网的发展和应用程序的复杂化,对于数据的访问和处理速度要求也越来越高。
在Java中,缓存技术被广泛应用于提高系统的性能和响应速度。
其中,二级缓存是一种常用的缓存技术,可以有效地减少对数据库等资源的访问次数,提高系统的性能。
一、什么是二级缓存二级缓存是指在应用程序和数据库之间添加一层缓存,用于存储频繁访问的数据。
通常情况下,二级缓存会将数据存储在内存中,以提高数据的访问速度。
相比一级缓存(即应用内存中的缓存),二级缓存具有更大的容量和更高的性能。
二、为什么需要二级缓存在大多数应用程序中,对于频繁访问的数据,每次都直接从数据库中读取会导致较高的数据库负载和较慢的响应速度。
而通过使用二级缓存,可以将这些数据缓存在内存中,减少对数据库的访问次数,从而提高系统的性能和响应速度。
三、二级缓存的实现原理1. 缓存的数据结构二级缓存通常使用哈希表或者红黑树等数据结构来存储缓存数据。
这些数据结构具有快速的查找和插入操作,可以提高数据的访问效率。
2. 缓存的更新策略为了保证缓存数据的及时性和准确性,二级缓存需要实现一定的更新策略。
常见的更新策略有以下几种:- 缓存失效策略:当缓存中的数据过期或者被修改时,将其标记为失效状态,并在下次访问时更新缓存数据。
- 定时刷新策略:定期清理缓存中的失效数据,并从数据库中重新加载最新的数据。
- 主动更新策略:当数据库中的数据发生变化时,通过数据库触发器或者消息队列等机制,自动更新缓存中的数据。
3. 缓存的淘汰策略当缓存中的数据量超过一定的限制时,为了避免内存溢出,需要实现一定的淘汰策略。
常见的淘汰策略有以下几种:- 先进先出(FIFO)策略:将最早进入缓存的数据淘汰出去。
- 最少使用(LFU)策略:将最少被访问的数据淘汰出去。
- 最近最少使用(LRU)策略:将最近最少被访问的数据淘汰出去。
4. 缓存的一致性由于缓存数据是存储在内存中的,可能会出现缓存与数据库数据不一致的情况。
在软件开发中,缓存是一种常用的优化技术,用于存储频繁访问的数据,使得下一次访问时可以更快地获取数据。
而在Java中,也存在着各种不同的缓存机制,用于提升程序的性能与效率。
一、内存缓存内存缓存是最常见的缓存机制之一。
在Java中,可以使用各种数据结构来实现内存缓存,比如Hashtable、HashMap、ConcurrentHashMap等。
使用内存缓存的好处是可以将数据存储在内存中,而不是频繁地访问数据库或者其他外部存储介质,从而提升访问速度。
同时,内存缓存还可以减轻数据库的负载,提高系统的并发能力。
二、CPU缓存CPU缓存是指CPU内部的高速缓存,用于暂时存储处理器频繁访问的数据。
在Java中,可以通过使用局部变量和静态变量来利用CPU缓存。
局部变量存储在方法栈帧中,相对于对象的实例变量来说,访问局部变量的速度更快。
因此,在开发过程中,应该尽量使用局部变量来存储频繁访问的数据。
静态变量是存储在方法区中的,与对象的实例无关。
由于静态变量只有一个副本,所以可以减少对CPU缓存的竞争,提高程序的性能。
三、磁盘缓存磁盘缓存是将数据存储在磁盘中,并使用相应的缓存算法来提高数据的读写速度。
在Java中,可以通过使用文件缓存或者数据库缓存来实现磁盘缓存。
文件缓存是将数据存储在本地文件系统中,比如将一些配置文件加载到内存中进行处理。
数据库缓存是将数据存储在数据库中,并使用缓存算法来提高数据的访问速度。
一般情况下,数据库缓存会使用LRU(最近最少使用)算法来决定何时移除某个数据。
四、网络缓存网络缓存是将数据存储在网络中,通过网络进行传输。
在Java中,可以通过使用HTTP缓存或者CDN来实现网络缓存。
HTTP缓存是浏览器和服务器之间的缓存,用于存储HTTP请求和响应的数据。
通过合理设定HTTP头信息,可以实现数据的缓存,减少带宽的消耗。
CDN(内容分发网络)是一种将数据分布到全球多台服务器的网络架构,用于存储静态文件,提供更快的数据访问速度。
java cache用法Java中的缓存是一种常用的数据结构,用于提高应用程序的性能和响应速度。
Java提供了多种缓存实现,如JavaCache、Ehcache、GuavaCache等,这些缓存可以存储数据并在需要时快速检索。
本篇文章将介绍JavaCache的使用方法。
JavaCache是一个简单的缓存实现,它提供了一个易于使用的API,可以方便地添加、获取和移除缓存数据。
JavaCache的设计目标是易于使用、高性能和可扩展性。
它支持通过多个存储引擎来扩展缓存,每个存储引擎都具有不同的性能特点。
1.添加缓存数据使用JavaCache添加缓存数据非常简单。
首先,需要创建一个Cache对象,并指定存储引擎的类型和名称。
然后,可以使用put方法将数据添加到缓存中。
例如:```javaCachecache=newCache("myCache",100);//创建一个缓存对象,存储引擎类型为Memory,容量为100个字节cache.put("key","value");//将数据添加到缓存中```2.获取缓存数据使用JavaCache获取缓存数据也非常简单。
可以使用get方法从缓存中获取数据。
如果数据不存在于缓存中,则返回null。
例如:```javaStringvalue=cache.get("key");//从缓存中获取数据```3.移除缓存数据使用JavaCache移除缓存数据也非常简单。
可以使用remove方法从缓存中移除指定的数据。
例如:```javacache.remove("key");//从缓存中移除数据```4.配置存储引擎和缓存容量JavaCache支持多个存储引擎,每个存储引擎具有不同的性能特点。
可以通过配置存储引擎的类型和名称来扩展缓存。
此外,还可以配置缓存的容量,以确保缓存不会因为存储空间不足而出现性能问题。
JA V AWeb应用缓存技术资料收集与总结——作者:夏俊时间:2011-1-2 WEB用户行为分析系统上线,在测试某些功能时候,发现部分功能响应时间过长,比如对起点文学的按月的统计数据显示,响应时间超过了3秒,这个不太符合用户的需要,那么接下来就是优化系统,提高系统速度的工作。
我们在分析响应速度缓慢的原因,发现还是数据库处理数据这块原因,究其根本还是数据量过大的原因,而且在数据库层面已经速度这块很难再有提升,因此考虑到w eb的缓存技术,这些响应速度缓慢的功能基本都是按周,按月的统计数据,因此在单位时间内的缓存是完全可以实现,以下就是我收集的java web 缓存的相关技术,有两个技术重点推荐,一个是OSCache,一个是JCS,这两个是缓存技术里应用最为广泛的,也是最为成熟并且是开源的技术。
下面是我推荐这两种技术的原因,如下:1)都是开源的JA V A程序2)网上能找到比较丰富的资料3)都支持分布式的系统4)操作部署都不太难5)均符合我们现在系统开发的需要OSCACHE和JCS区别在哪里了?现在我都只是简单看了下,现在总结还不全面,等具体操作后会加以补充:1)OSCache我找到的资料,我感觉主要是是页面级的缓存,他的缓存开发代码基本都是在页面里,用标签定义,应该数据都是缓存在客户端(这点还要细细体味)2)JCS是服务端的缓存,他基本是将需要缓存的数据先存在服务器的内存或是硬盘里,在一定时间内用户可以不通过数据库这个线路获取数据,而是从服务器直接获取,但这样会不会服务端负荷过大从以上区别来说,如果数据能在客户端缓存,我还是更加推荐点,但是客户端如果缓存,用户要是有什么原因经常清理客户端缓存也是个问题。
最后这几种缓存技术和我们现在系统的整合的问题,这个我还要接着找下数据,我们系统是struts2+jquery(service和DAO层,这个缓存应该不会牵涉到),JCS是服务端缓存,所以数据返回可以在action里封装,对于前台而言影响不大,至于OSCache,如果使用它那么系统该如何改造,这个我要考虑下。
再有就是何时来缓存数据,就是触发缓存的方式,是用户的第一次在适当时间的点击还是通过调度的方式定时缓存了,这点也要考虑下。
写以上内容发现自己刚才对OSCache没有理解太清楚,OSCache缓存是使用标签的,在标签里的内容就会按时间缓存。
因此实际操作下是很重要的。
(一) 第一份资料—JCSJava 缓存系统(Java Caching System,JCS)a)资料编号NO101JCS概述:JCS 是一个用Java 语言编写的缓存系统,可以使用它来创建Java 桌面和Web 应用程序。
它提供了在缓存器中存储数据、从缓存器中删除数据等方便机制。
使用JCS 可以在各种指定的数据区域中存储缓存数据。
JCS 定义了 4 种类型的核心区域:内存区域、磁盘区域、外围区域和远程区域。
可以结合使用这些核心区域以在如何存储缓存数据、将缓存数据存储在什么地方等方面获得更大的灵活性。
您可以指定首次使用哪个区域,以及发生故障时转移到哪个区域。
内存区域:内存区域是一个使用最近最少算法(Least Recently Used,LRU)的纯内存缓存区域。
当内存缓存区域满时,LRU 会首先删除最近最少使用的缓存数据。
这个数据区域执行良好,大多数JCS 用户将它指定为最先使用的默认缓存区域。
磁盘区域:磁盘区域是在Web 服务器的文件磁盘上缓存数据。
为了提高性能,JCS 在文件磁盘上存储实际缓存数据的同时,会在内存中存储缓存数据键。
在首先使用内存区域的典型JCS 配置中,任何无法在内存区域中保存的数据都会写入磁盘区域中。
外围区域:外围区域提供一种可配置方式来在多台服务器之间分发缓存数据。
缓存数据服务器必须有一个开放的用于侦听的端口,而且必须创建一个套接字连接。
这个区域存在一个潜在问题,因为它不能保证各缓存之间的数据的一致性。
但如果是按计划使用该区域,则不会出现这个问题。
远程区域:远程区域提供了一个使用远程方法调用(RMI)API 的缓存区域。
这个区域使用一台远程服务器处理缓存数据。
这台远程缓存服务器可以被多个JCS 客户端应用程序用于存储缓存数据。
一些侦听器被定义用于收集来自客户端和服务器的请求。
这个缓存区域帮助减少串行化和多个连接点的开销。
(JCS 的可插入控制器:JCS 通过组合缓存器(Composite Cache)让使用多个区域进行缓存存储变得很简单。
组合缓存器为缓存区域提供了一个可插入控制器。
组合缓存器仔细处理复杂的任务,即确定何时以及如何使用每个缓存区域。
JCS 将完成大部分复杂的工作,开发人员只需关心获取和设置缓存。
)夏俊备注:我看了下ibatis缓存机制,内存区域的缓存和磁盘缓存,ibatis也有实现。
JCS 配置:配置JCS 就是简单地创建和填充一个f 文件。
这个文件定义缓存应该使用哪些区域,以及这些区域的属性或选项。
根据应用程序的需求配置这个文件是一种快速扩展缓存的简便方式。
您可以指定许多适合配置的选项和属性来满足需求。
清单 1 显示的是最基本的f 文件—一个纯内存缓存配置:清单 1. JCS 的基本配置jcs.default=jcs.default.cacheattributes=positeCacheAttributesjcs.default.cacheattributes.MaxObjects=1000jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache从清单 1 中可以看出,该配置文件将内存缓存指定为一个LRUMemoryCache。
还可以看到,内存中能保存的对象的最大数量被设置为1000。
大多数应用程序的缓存系统配置要比清单 1 中复杂得多。
在清单2 的配置中,我在定义自己的区域(OUR_REGION)时使用了一个内存区域和一个磁盘区域:清单 2. 在 JCS 配置中定义的区域jcs.default=DISK_REGIONjcs.default.cacheattributes=positeCacheAttributesjcs.default.cacheattributes.MaxObjects=1000jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache jcs.region.OUR_REGION=DISK_REGIONjcs.region.OUR_REGION.cacheattributes=positeCacheAttributesjcs.region.OUR_REGION.cacheattributes.MaxObjects=1000jcs.region.OUR_REGION.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCachejcs.region.OUR_eMemoryShrinker=truejcs.region.OUR_REGION.cacheattributes.MaxMemoryIdleTimeSeconds=3600jcs.region.OUR_REGION.cacheattributes.ShrinkerIntervalSeconds=60jcs.region.OUR_REGION.cacheattributes.MaxSpoolPerRun=500jcs.region.OUR_REGION.elementattributes=org.apache.jcs.engine.ElementAttributesjcs.region.OUR_REGION.elementattributes.IsEternal=falsejcs.auxiliary.DISK_REGION=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory jcs.auxiliary.DISK_REGION.attributes=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributesjcs.auxiliary.DISK_REGION.attributes.DiskPath=c:/jcs/disk_regionjcs.auxiliary.DISK_REGION.attributes.maxKeySize=100000清单 2 中的第一行表明该配置将默认区域设置为DISK_REGION。
DISK_REGION 是IndexedDiskCacheFactory 类型,并且该文件在磁盘上指定为c:\jcs\disk_region。
清单 2 中的第二个配置组定义了我自己的区域,我为它添加了一些选项,这种类型的配置(在指定用户定义区域时同时使用内存区域和磁盘区域)是很常见的。
清单 2 中的第 3 个配置组定义了一个辅助区域。
JCS 有两个依赖项:concurrent 和commons-logging(JCS 1.2.7.0 之前的版本中,还有两个其他依赖项:commons-collections 和commons-lang)。
(JCS 辅助插件:除了4 个核心缓存实现外,JCS 还提供了一些辅助插件,它们是区域可以使用的可选插件。
这些辅助插件包括索引磁盘缓存(Indexed Disk Cache)、TCP 外围缓存(TCP Lateral Cache)和远程缓存服务器(Remote Cache Server)。
例如,索引磁盘缓存允许在到达内存阈值时在磁盘上交换项目。
这使得每个区域能更灵活地控制其缓存,提供一种类似于大多数操作系统所使用的虚拟内存的存储方法。
f 配置文件可以让每个辅助区域满足应用程序的需求。
)JCS 的基本用法:学习JCS 基础知识的一个好方法是查看API 最常用的方法。
最好从初始化区域开始。
初始化JCS 缓存区域对象能使您访问大部分所需的常用方法。
清单3 初始化JCS 对象并获得一个默认缓存区域实例:清单 3. 检索默认缓存区域// Initialize the JCS object and get an instance of the default cache regionJCS cache = JCS.getInstance("default");检索JCS 实例后,可以调用最需要的方法。