Apache Geode 缓存管理介绍
缓存为你的数据提供内存存储和管理。
将缓存中的数据组织到数据区域中,每个数据区域都有自己的可配置行为。缓存以键值对的形式存储数据到区域中被称作数据项。缓存还提供了诸如事务、数据查询、磁盘存储管理和日志记录这样的特性。查看java文档的org.apache.geode.cache.Cache。
你通常使用 gfsh命令行工具或是xml声明与应用程序接口调用的结合方式来配置缓存。当你第一次创建缓存时geode加载并处理xml声明。 geode有一个管理服务器和结点缓存的缓存,还有一个管理客户端的缓存。缓存服务器进程在它启动的时候自动创建它的服务器缓存。在你的应用进程中,缓存的创建返回一个服务器/节点或是客户端缓存。从这一点来说,你可以通过应用程序接口管理缓存。
缓存应用程序编程接口
geode的缓存应用程序编程接口为不同的系统成员类型和安全设置提供了专门的行为。
-
org.apache.geode.cache.RegionService
. 通常情况下, 你通过Cache和ClientCahe实例化来使用RegionService
功能。你只有在服务多个用户的安全的客户端应用中为有访问限制的用户这种特殊情况下使用RegionService实例。
RegionService
应用程序编程接口提供了访问已存在的缓存数据区域和标准的查询服务。对于客户端缓存,查询被发送到服务器层。对于服务器和节点缓存,查询在当前的缓存中和任何可用的节点中运行。RegionService由
GemFireCache来实现。
-
org.apache.geode.cache.GemFireCache
. 你没有专门的使用GemFireCache实例,但你在Cache和ClientCache实例中使用GemFireCache功能。GemFireCache扩展了RegionService并为区域持久化和溢出添加了例如区域属性,磁盘存储等通用的特性,而且访问底层的分布式系统。GemFireCache由 Cache 和 ClientCache来实现。 -
org.apache.geode.cache.Cache
. 使用缓存接口来管理服务器和节点缓存,你的每个服务器或是节点都有一个缓存。Cache扩展自GemFireCache并且添加了服务器/节点 缓存特性,例如在分布式系统中进行通信,创建区域,事务和查询,和缓存服务器的功能。 -
org.apache.geode≈setting_cache_initializer.cache.ClientCache
. 在客户端使用ClientCache接口来管理缓存。客户端进程有一个ClientCache,ClientCache 扩展自 GemFireCache并添加了客户端指定的缓存特性例如客户端区域创建,为长期的客户端订阅长期存活的管理,在服务器和客户端层查询,还有为客户端里多用户安全访问创建 RegionService。
缓存XML
你的cache.xml必须按产品XML模式定义
cache-1.0.xsd来格式化。架构定义文件在产品发布包的
$GEMFIRE/schemas/geode.apache.org/schema/cache/cache-1.0.xsd
。
你使用一个来格式化节点和服务器缓存,还有一个用来格式化客户端缓存。
节点/服务器的cache.xml:
<?xml version="1.0" encoding="UTF-8"?> <cache xmlns="http://geode.incubator.apache.org/schema/cache" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://geode.incubator.apache.org/schema/cache http://geode.incubator.apache.org/schema/cache/cache-1.0.xsd" version="1.0”> ... </cache>
客户端cache.xml
<?xml version="1.0" encoding="UTF-8"?> <client-cache xmlns="http://geode.incubator.apache.org/schema/cache" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://geode.incubator.apache.org/schema/cache http://geode.incubator.apache.org/schema/cache/cache-1.0.xsd" version="1.0”> ... </client-cache>
更多信息请查看cache.xml
创建和关闭缓存
你的系统配置和缓存配置会在你启动你的成员进程和创建每个成员的缓存时被初始化。如果你使用集群配置服务,成员进程可以从集群或组当前的配置中选取它的缓存配置。查看《集群配置服务概述》。
在这章节的使用gemfire.properties
和 cache.xml文件的例子中的步骤中,除了要求应用程序编程接口的地方。你可以通过
用程序编程接口
配置你的分布式系统属性和缓存,你也可以使用配置文件和程序编程接口结合来使用。
XML的例子中或许没有包括完整的cache.xml文件例表。你所有声明的缓存配置必须符合产品安装的缓存xsd $GEMFIRE/schemas/geode.apache.org/schema/cache/cache-1.0.xsd
.
对于你所有的geode应用:
- 为节点/服务器应用创建你的cache,或是为客户端应用创建ClientCache 。它连接到你已经配置并初始化任意数据区域的Geode系统。使用你的缓存实例来访问你的数据区域并完成您的应用程序工作。
- 当你完成时关闭你的缓存。这释放资源并从分布式系统中有序地断开你的应用。
按照《缓存管理》下的子章节的说明来定制你的缓存创建和应用关闭需求。你或许需要结合这些说明中的多个。例如,在系统中创建带有安全的客户端缓存,你需要按照创建和关闭客户端说明和在安全系统中关闭缓存的说明。
导出和导入缓存快照
为了帮助管理缓存数据并加快新环境的设置,你可以导出整个缓存(所有区域)的快照 并导入这个快照到一个新的缓存,例如,你可以把生产环境的缓存快照来导入到测试环境中以实现数据的导入。更多的导出和导入快照的详情请查看《缓存和区域快照》
用gfsh和集群配置服务来管理缓存
你可以使用gfsh命令来管理服务器缓存。那里有gfsh命令创建区域,启动服务器,和创建队列和其它对象。当你发出这些命令,集群配置服务在定位器上保存cache.xml和gemfire.properties文件并分发这些配置到新加入到集群中的成员。查看《集群服务概述》