第 2 章 缓存管理器
主要的入口点是可让您的 CacheManager
接口:
- 配置并获取缓存。
- 管理和监控集群数据中心节点。
- 在集群中执行代码。
如果您在应用程序中嵌入 Data Grid,则使用 EmbeddedCacheManager
。如果您将 Data Grid 作为远程服务器运行,您可以使用 RemoteCacheManager
。
缓存管理器是高权对象,因此在大多数情况下,您应该为每个 JVM 实例化一个 CacheManager
实例。
EmbeddedCacheManager manager = new DefaultCacheManager(); 1
- 1
- 启动没有缓存的本地、非集群的缓存管理器。
缓存管理器具有生命周期,默认构造器也会调用 start ()
方法。提供构造器的过载版本,但它们不会启动 CacheManager
。但是,您必须先启动 CacheManager
,然后才能创建缓存。
同样,当您不再需要正在运行的 CacheManager
时,您必须调用 stop ()
,以便释放资源。这也确保缓存管理器安全停止它控制的任何缓存。
2.1. 获取缓存
配置 CacheManager
后,您可以获取和控制缓存。
调用 getCache (String)
方法以获取缓存,如下所示:
Cache<String, String> myCache = manager.getCache("myCache");
前面的操作会创建一个名为 myCache
的缓存(如果尚不存在),并返回它。
使用 getCache ()
方法仅在调用该方法的节点上创建缓存。换句话说,它会执行一个本地操作,它必须在集群中的每个节点上调用。通常,在多个节点之间部署的应用程序会在初始化过程中获取缓存,以确保缓存是 对称的,并在每个节点上存在。
调用 createCache ()
方法,以在整个集群中动态创建缓存,如下所示:
Cache<String, String> myCache = manager.administration().createCache("myCache", "myTemplate");
以上操作还会在随后加入集群的任何节点上自动创建缓存。
使用 createCache ()
方法创建的缓存默认为临时的。如果整个集群都关闭,则重启时不会再次自动创建缓存。
使用 PERMANENT 标志来确保缓存可以在重启后,如下所示:
Cache<String, String> myCache = manager.administration().withFlags(AdminFlag.PERMANENT).createCache("myCache", "myTemplate");
要使 PERMANENT 标志生效,您必须启用全局状态并设置配置存储供应商。
有关配置存储供应商的更多信息,请参阅 GlobalStateConfigurationBuilderBuilderconfigurationStorage ()。