- 内容提要
- 序
- 前言
- 第一部分 背景知识
- 第 1 章 Spring Data 项目
- 第 2 章 Repository:便利的数据访问层
- 第 3 章 使用 Querydsl 实现类型安全的查询
- 第二部分 关系型数据库
- 第 4 章 JPA Repository
- 第 5 章 借助 Querydsl SQL 实现类型安全的 JDBC 编程
- 第三部分 NoSQL
- 第 6 章 MongoDB: 文档存储
- 第 7 章 Neo4j:图数据库
- 第 8 章 Redis:键/值存储
- 第四部分 快速应用开发
- 第 9 章 使用 Spring Roo 实现持久层
- 第 10 章 REST Repository 导出器
- 第五部分 大数据
- 第 11 章 Spring for Apache Hadoop
- 第 12 章 使用 Hadoop 分析数据
- 第 13 章 使用 Spring Batch 和 Spring Integration 创建大数据管道
- 第六部分 数据网格
- 第 14 章 分布式数据网格:GemFire
- 关于封面
14.2 缓存与域
从概念上讲, 缓存 就是单例的对象,可访问 GemFire 成员,并提供了许多内存调整、网络连接以及其他功能的配置选项。缓存也可以作为 域 的容器,域提供了数据管理和存取的功能。
域必须从缓存中存储和检索数据。域接口扩展了 java.util.Map,从而可以使用熟悉的键/值语义来执行基本数据的存取。域接口装配到需要它的类之中,这样实际的域类型会与编程模型解耦合(这里有一些注意事项,留给读者作为思考练习)。通常每个域都会关联一个领域对象,类似于关系数据库中的表。观察示例代码,会看到 3 个域定义:Customer、Product 和 Order。需要注意的是 GemFire 不负责管理每个域之间关联关系的完整性。
GemFire 包含以下几个域类型。
复制域 ( Replicated )
数据会在域所定义的缓存成员之间复制,因此提供了高效的读取性能,但是因为需要进行数据复制,所以写入耗时较长。
分区域 ( Partitioned )
域会将数据分成桶(bucket)并分布存储在定义域的缓存成员之间,以提供高效的读写性能,适用于非常大型且无法在单个节点存储的数据集。
本地域 ( Local )
数据仅存放在本地节点上。
客户域 ( Client )
从技术上说客户域就是本地域,它作为复制域或分区域在缓存服务器上的代理。它可以持有本地创建或读取的数据,也可以是空的。在本地所做的更新会与缓存服务器同步。此外,客户域可以订阅事件,使得当存取相同域的远程进程发生变化时可保持同步。
希望以上简要的介绍能让你体验到 GemFire 灵活性和成熟度。对 GemFire 可选项与功能的详细讨论已经超出了本书范围,有兴趣的读者可以在产品网站( http://www.vmware.com/products/application-platform/vfabric-gemfire )找到更多详细资料。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论