本节提供了一系列的基本高速缓存方案的定义,可以使用或根据需要进行修改。参见第12章,“配置高速缓存,”详细说明如何配置缓存。此外,样品在本章建立在互相经常使用一个
本节主要介绍配置以下缓存方案:
本地缓存(可从单个JVM)
在内存缓存
NIO的内存缓存
大小限制在内存缓存
内存中缓存窝条目
磁盘上的缓存
磁盘上缓存大小有限公司
持续高速缓存磁盘
内存与基于磁盘的缓存溢出
数据库缓存
集群缓存(可从多个JVM)
复制缓存
复制缓存溢出
分区的高速缓存
分区的高速缓存溢出
数据库分区的高速缓存
分区的高速缓存与串行
近缓存
本节定义一系列的本地缓存计划。在这种情况下的“本地”意味着缓存是直接访问单个JVM 。后来本文档中使用本地缓存的集群缓存积木。参见“集群缓存(可从多个JVM ) 。
17.1.1内存中缓存
例17-1使用本地计划,以定义在内存中缓存。缓存尽可能JVM堆允许存储。
例17-1配置为本地,在内存中缓存
例17-2使用外部计划使用NIO的内存管理器定义在内存中缓存。 NIO的基于内存的缓存的优点是,它允许大的内存中缓存存储,而不会产生负面影响JVM的GC倍。 NIO的内存区域的最大大小的高速缓存的大小是有限的。见
例17-2配置一个NIO的内存缓存
添加一个子
例17-3配置一个大小有限,在内存中,本地缓存
添加一个子元素
例17-4配置内存中缓存窝条目
例17-5使用外部计划定义一个磁盘上的缓存。缓存存储尽可能多的文件系统允许。
注意事项:
这个例子使用了LH-文件管理器,其在磁盘上存储的实现。请参阅外部计划额外的外部存储选项。
例17-5配置定义一个磁盘上缓存
添加
例17-6配置为一个磁盘上缓存大小限制
实施例17-7使用一个外部的方案来实现的高速缓存适于用作长期储存在一个单独的JVM 。
外部高速缓存通常用于临时存储大型数据集,并且会自动删除JVM关机。外部缓存,可用于长期储存(见“持久性(长期储存) ” )在非集群缓存时使用的LH -文件管理器或BDB存储管理器存储经理的。对于集群的持久性,请参阅“分区的高速缓存数据库”的样品。
{cache-name}宏是用来指定名称的文件数据存储中。这个宏的更多信息,请参阅“使用参数宏” 。
例17-7持久磁盘上缓存的配置
例17-8说明使用Berkeley DB的,而LH 。
例17-8 Berkeley DB的持久磁盘上缓存的配置
例17-9使用溢出计划定义大小的内存高速缓存中,当内存中的(
请注意,这个例子重用“大小磁盘上缓存有限公司”和“磁盘缓存”中的例子。来实现的高速缓存中的正面和背面。
例17-9配置基于磁盘的内存中缓存溢出
例17-10使用一个可读写的后盾地图计划定义一个数据库缓存。此计划维护的数据库中的内容的一部分的本地缓存。读取高速缓存未命中到数据库,缓存写入写回数据库。
实现的com.tangosol.net.cache.CacheLoader或com.tangosol.net.cache.CacheStore接口配置了一个自定义类的缓存存储方案元素。这个类是负责所有对数据库的操作,如阅读和写作缓存条目。请参阅“样本的缓存存储区实现”写入缓存存储的例子。
{cache-name}宏是用来告知缓存存储实现缓存备份的名称。这个宏的更多信息,请参阅“使用参数宏” 。
例17-10配置数据库缓存
本节定义了一系列的集群缓存的例子。集群缓存可从多个JVM (任何群集节点上运行相同的缓存服务) 。每个群集节点上的内部缓存存储(后备地图)的定义是使用本地缓存(见“本地缓存(可从单一JVM ) ” ) 。缓存服务提供能力访问其他群集节点的本地缓存。
例17-11使用复制的计划元素,每个高速缓存条目的副本存储在所有群集节点上定义一个集群的缓存。
“内存缓存中的示例”是用来定义缓存存储在每个群集节点。高速缓存的大小仅受限于最小的JVM堆的群集节点。
例17-11配置一个复制缓存
后备地图计划元素可以很容易地指定的任何其他本地缓存样品。例如,如果使用“的内存中缓存与基于磁盘的溢出” ,每个群集节点将有一个本地溢出缓存允许更大的存储容量。
例17-12配置为复制缓存溢出
例17-13采用分布式方案,定义一个集群的缓存,缓存存储在所有群集节点分区。
“内存缓存”是用来定义缓存存储在每个群集节点。高速缓存的总容量是所有存储功能的群集节点运行分区的高速缓存服务的总和。见
例17-13分区缓存配置
17.2.4分区的高速缓存溢出
后备地图计划元素可以很容易地指定的任何其他本地缓存样品。举例来说,如果它使用了基于磁盘溢出“的”内存缓存,每个存储功能的群集节点将有一个本地溢出缓存允许更大的存储容量。需要注意的是缓存的备份存储也使用相同的溢出计划,允许备份数据到磁盘溢出。
例17-14配置一个分区的高速缓存溢出
切换后备地图计划元素使用一个可读写的后盾地图计划允许缓存来装入和存储对外部源(如数据库)的条目。
例17-15重用的“缓存”来定义的数据库访问数据库。
例17-15一个数据库分区的高速缓存配置
例17-16采用分布式方案,用于序列化和反序列化的用户类型定义一个序列的序列化元素。在这种情况下,分区的高速缓存使用POF ( ConfigurablePofContext )作为其序列化格式。请注意,如果您使用的POF和您的应用程序使用任何用户自定义类型的类,那么你也必须定义一个定制的POF配置为他们。请参阅附录D , POF元素的更多信息的的“ POF用户类型的配置元素” 。
示例17-16配置一个分区的高速缓存与串行
序列化在 tangosol-coherence.xml的部署描述符中定义的串行器也可以被引用。
例17-17分区的高速缓存,串行参考
例17-18定义默认串行
xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd"> ... 例17-19使用近计划定义一个本地内存缓存分区的高速缓存的一个子集。其结果是,任何群集节点访问分区的高速缓存保持元素经常访问的本地副本。这提供了复制的计划基于缓存的读取性能接近,同时提供高可扩展性的基于分布式方案缓存。 17.2.7近缓存
“内存缓存”样本大小有限公司重用定义的“近” (
请注意,前计划的大小有限的配置多少背面计划缓存本地缓存中指定的限制。
例17-19的本地缓存分区缓存配置