2.2. 创建和使用嵌入式缓存
Data Grid 提供了一个 GlobalConfigurationBuilder
API,用于控制 Cache Manager 和用于配置缓存的 ConfigurationBuilder
API。
先决条件
-
将
infinispan-core
工件添加为pom.xml
中的依赖项。
流程
初始化
CacheManager
。注意在创建缓存前,您必须始终调用
cacheManager.start ()
方法来初始化CacheManager
。默认构造器为您完成此操作,但构建器的超载版本不会为您这样做。缓存管理器也是重量的对象,Data Grid 建议实例化每个 JVM 只有一个实例。
-
使用
ConfigurationBuilder
API 定义缓存配置。 使用
getCache ()
、createCache ()
或getOrCreateCache ()
方法获取缓存。Data Grid 建议使用
getOrCreateCache ()
方法,因为它在所有节点上创建一个缓存或返回现有的缓存。-
如有必要,对缓存使用
PERMANENT
标志,以在重启后保留。 -
通过调用
cacheManager.stop ()
方法以释放 JVM 资源并正常关闭任何缓存,以停止CacheManager
。
getCache ()
方法
调用 getCache (String)
方法以获取缓存,如下所示:
Cache<String, String> myCache = manager.getCache("myCache");
Cache<String, String> myCache = manager.getCache("myCache");
前面的操作会创建一个名为 myCache
的缓存(如果尚未存在),并返回它。
使用 getCache ()
方法仅在您调用方法的节点上创建缓存。换句话说,它会执行一个本地操作,它必须在集群中的每个节点上调用。通常,在多个节点间部署的应用程序会在初始化过程中获取缓存,以确保缓存都是 对称的,并在每个节点上存在。
createCache ()
方法
调用 createCache ()
方法,以在整个集群中动态创建缓存。
Cache<String, String> myCache = manager.administration().createCache("myCache", "myTemplate");
Cache<String, String> myCache = manager.administration().createCache("myCache", "myTemplate");
前面的操作还会在随后加入集群的任何节点上自动创建缓存。
默认情况下,您使用 createCache ()
方法创建的缓存是临时的。如果整个集群关闭,则缓存重启后不会自动创建。
PERMANENT
标志
使用 PERMANENT 标志来确保缓存可以在重启后保留。
Cache<String, String> myCache = manager.administration().withFlags(AdminFlag.PERMANENT).createCache("myCache", "myTemplate");
Cache<String, String> myCache = manager.administration().withFlags(AdminFlag.PERMANENT).createCache("myCache", "myTemplate");
要使 PERMANENT 标志生效,您必须启用全局状态并设置配置存储提供程序。
有关配置存储供应商的更多信息,请参阅 GlobalStateConfigurationBuilder#configurationStorage ()。