一、GemFire是什么?
如果你了解Redis或memCached,那么恭喜,你很快就能理解GemFire是什么,没错,你可以把它理解为一个增强版的Redis,具体在哪些方面增强,我们日后慢慢聊。如果你不了解Redis,也没有关系,先看官方网站上的说法:Pivotal GemFire is the distributed, in-memory database for developers who are building the highest scaling and performing data-centric apps in the world. 但是,按照我对它的理解,我更愿意用下面的语言来描述它,GemFire是一个高性能的分布式内存对象缓存系统,如果非要说它是数据库,那也只能算是一个Key/Value数据库(我更愿意称之为Key/Value存储系统)
我们通过把对象或数据缓存在内存中,减少对传统关系型数据库的读写次数(减少IO瓶颈),从而使我们的应用支持更多的TPS,更多的并发用户数。GemFire能够在部分场景下对关系型数据库起到很好的补充(甚至替代)作用,它可以作为应用层与传统数据层的“润滑剂”。
二、关于GemFire的前世今生?
GemFire的第一个版本发布于2002年3月份,当时它还属于一家独立的公司GemStone Systems.后来GemStone System这家公司被VMware给收购了,GemFire也被整合到了VMware Vfabric产品线。请注意,VMWare当时也收购了Redis项目。在2013年4月EMC与VMware/GE合资成立一家新公司Pivotal,VMware慷慨的贡献出了它的vfabric产品线,以及它收购的一些开源项目。
目前,GemFire的商业版权已经属于Pivotal了。顺便说一句,Redis的创始人Salvatore Sanfilippo 现在也供职于Pivotal.
三、GemFire有什么特点?
1.分布式数据存储
• 稳定而高性能的的基于内存的数据数据存储
• 灵活的Cache部署策略:点对点(peer to peer);客户端/服务端(client server);多集群(multiple clusters)的本地或远程数据同步,支持数据高性能灾备和双活
• 灵活的Region(数据对象集或者可理解为表)分布式处理:同一集合数据(可理解为一个表的数据)可以整集多点同步或切割后不同点保存,并支持数据实时再平衡(rebalance)既数据分隔保存后若加入新的空闲服务器,数据可以在不重启服务的情况下重新切割和平衡数据,从而达到真正的数据在线动态延展
• 具有持续性的数据高可用性和容错性:各个分散的数据点可以配置一个或多个基于内存的热备数据点,当主数据点宕机的情况下,其中一个热备点就会提升称为主数据点,同时可以继续在空闲机器上创建备份点,从而达到数据的持续的可用性。同时数据可以通过配置同步或异步地持续化到本地硬盘,或者到指定的数据库或文件中。
• 数据地客户端缓存:客户端可以将最常用数据缓存一个备份与本地,进一步加快效能
• 在线数据备份
• 数据全内存和部分内存策略:通过配置可以将数据全部存入内存,或者通过将非频繁使用数据挤出策略(LRU)来将部分频繁适用数据保存于内存中达到成本效益最大化
• 内置资源优化器用以降低JAVA GC所带来的延迟,支持单个大容量Cache点(一般服务器可配置超过40GB内存的Java heap size)
• 安全支持:基于用户和角色的数据访问,数据传输渠道加密(SSL)
• 数据存取
• 除key-value简单cache支持外,支持复杂数据对象和关系存储
• 丰富的OQL(类SQL)的查询语言支持
• 支持数据单记录或批处理
• 本地或分布式事务处理
• Map-Reduce并行查询:同一查询命令可并行发送到各Cache点(Map),结果集自动在客户端汇合(Reduce)
• 智能定点查询:查询命令在包含数据特征如主键值时,查询命令会自动命中数据点
2.服务和事件
• Function支持: Function相当于一个数据库存储过程,区别在于其可动态植入Cache点。
• 亲密关系数据同业务逻辑聚合:亲密关系数据指需要相互直接依赖完成一个交易的多个数据,例如客户A和属于客户A的产品数据。GemFire可以将业务逻辑涉及到亲密关系数据放到同一个计算机进程来处理,避免数据网络传输和数据序列化等带来的延迟,并极大体现Share Nothing的涉及理念,因为互相不依赖从而加大服务的涉及延展性
• 最大化的并行处理:数据各子集合和业务逻辑可分散在各点并行处理,而不需要想数据库等产皮按顺序处理
• 事件监听处理:Cache点可以根据数据的增、删、改和过期等事件来触发另外的业务逻辑处理。
• 类消息队列处理:客户端可以注册其感兴趣数据在Cache点,当满足条件数据出现时,自动向客户端发布。可实现类似于消息队列的Queue 或 Topic机制。
• 持续查询功能:客户端可以定制复杂查询条件在Cache点,同样在满足条件的数据出现时向客户端发送。
• Delta数据传输:所有数据的网络同步可以选择只将变化碎片传输同步,例如当一个客户只有地址数据发生改变时,就只需要将地址同步而非整个客户数据对象。
• 稳定而高性能的的基于内存的数据数据存储
• 灵活的Cache部署策略:点对点(peer to peer);客户端/服务端(client server);多集群(multiple clusters)的本地或远程数据同步,支持数据高性能灾备和双活
• 灵活的Region(数据对象集或者可理解为表)分布式处理:同一集合数据(可理解为一个表的数据)可以整集多点同步或切割后不同点保存,并支持数据实时再平衡(rebalance)既数据分隔保存后若加入新的空闲服务器,数据可以在不重启服务的情况下重新切割和平衡数据,从而达到真正的数据在线动态延展
• 具有持续性的数据高可用性和容错性:各个分散的数据点可以配置一个或多个基于内存的热备数据点,当主数据点宕机的情况下,其中一个热备点就会提升称为主数据点,同时可以继续在空闲机器上创建备份点,从而达到数据的持续的可用性。同时数据可以通过配置同步或异步地持续化到本地硬盘,或者到指定的数据库或文件中。
• 数据地客户端缓存:客户端可以将最常用数据缓存一个备份与本地,进一步加快效能
• 在线数据备份
• 数据全内存和部分内存策略:通过配置可以将数据全部存入内存,或者通过将非频繁使用数据挤出策略(LRU)来将部分频繁适用数据保存于内存中达到成本效益最大化
• 内置资源优化器用以降低JAVA GC所带来的延迟,支持单个大容量Cache点(一般服务器可配置超过40GB内存的Java heap size)
• 安全支持:基于用户和角色的数据访问,数据传输渠道加密(SSL)
• 数据存取
• 除key-value简单cache支持外,支持复杂数据对象和关系存储
• 丰富的OQL(类SQL)的查询语言支持
• 支持数据单记录或批处理
• 本地或分布式事务处理
• Map-Reduce并行查询:同一查询命令可并行发送到各Cache点(Map),结果集自动在客户端汇合(Reduce)
• 智能定点查询:查询命令在包含数据特征如主键值时,查询命令会自动命中数据点
2.服务和事件
• Function支持: Function相当于一个数据库存储过程,区别在于其可动态植入Cache点。
• 亲密关系数据同业务逻辑聚合:亲密关系数据指需要相互直接依赖完成一个交易的多个数据,例如客户A和属于客户A的产品数据。GemFire可以将业务逻辑涉及到亲密关系数据放到同一个计算机进程来处理,避免数据网络传输和数据序列化等带来的延迟,并极大体现Share Nothing的涉及理念,因为互相不依赖从而加大服务的涉及延展性
• 最大化的并行处理:数据各子集合和业务逻辑可分散在各点并行处理,而不需要想数据库等产皮按顺序处理
• 事件监听处理:Cache点可以根据数据的增、删、改和过期等事件来触发另外的业务逻辑处理。
• 类消息队列处理:客户端可以注册其感兴趣数据在Cache点,当满足条件数据出现时,自动向客户端发布。可实现类似于消息队列的Queue 或 Topic机制。
• 持续查询功能:客户端可以定制复杂查询条件在Cache点,同样在满足条件的数据出现时向客户端发送。
• Delta数据传输:所有数据的网络同步可以选择只将变化碎片传输同步,例如当一个客户只有地址数据发生改变时,就只需要将地址同步而非整个客户数据对象。
3.整合与管理:
• Cache的监控和数据分析工具,便于管理
• Springdata-GemFire项目,使得GemFire和Spring的集成浑然一体
• Cache的监控和数据分析工具,便于管理
• Springdata-GemFire项目,使得GemFire和Spring的集成浑然一体
相关推荐
《深入理解SpringBoot集成Gemfire 9.1.1版》 在当今的微服务架构中,数据存储和缓存管理扮演着至关重要的角色。Pivotal Gemfire是一款分布式内存数据网格,它提供了高性能、低延迟的数据存储和处理能力,特别适合于...
根据给定文件信息,以下是对“Gemfire pdf入门手册”中知识点的详细解读: 标题:“Gemfire pdf入门手册”指明了文档的性质和主要用途,即为读者提供一份关于内存数据库产品GemFire的基础入门学习资料。GemFire是一...
1.安装 java se 1.8(jdk-8u111-...3.按http://gemfire.docs.pivotal.io/docs-gemfire/latest/getting_started/15_minute_quickstart_gfsh.html#topic_FE3F28ED18E145F787431EC87B676A76 上进行操作 4.打开REST 格式 ...
### 关于gemfire V1.8.2用户手册的关键知识点 #### 一、产品概述与版权信息 在《gemfire用户手册》中首先强调的是版权信息。本版本为gemfire V1.8.2(实际文档中显示为8.2版),由Pivotal Software, Inc.版权所有...
### Pivotal Gemfire 9.3 文档关键知识点解析 #### 一、Pivotal Gemfire 9.3 概览 - **版本信息**:文档为Pivotal GemFire 9.3版本的用户指南,版权日期为2018年。 - **文档类型**:用户手册。 #### 二、Pivotal ...
GemFire/Geode多节点集群部署踩坑大全 GemFire/Geode 是一种分布式内存对象管理系统,广泛应用于大型企业级应用中。然而,在实际部署中,遇到的一些坑和难点,会导致部署失败或效率不高。以下是 GemFire/Geode 多...
GemFire 简单搭建 GemFire 是一款高性能的内存数据库,能够提供低延迟、高吞吐量的数据存储和处理能力。在本文中,我们将简单地搭建一个 GemFire 集群,适合于对 GemFire 无从下手的人。 环境准备 在开始搭建 ...
Pivotal GemFire文档涵盖了从环境部署、搭建到配置说明的全方位官方指导,是使用GemFire技术用户不可或缺的参考资料。Pivotal GemFire是一种高性能、分布式内存数据存储,广泛用于大规模实时业务场景。 ### 环境...
【标题】"gemfire 7.0" 是一款强大的分布式内存数据网格系统,主要用于处理大规模数据的高速缓存和分布式计算。此版本是vFabric GemFire的重要升级,它旨在提供更高效、更可靠的企业级解决方案。 【描述】"gemfire ...
标题中的"spring-data-gemfire-1.3.4.RELEASE.zip"指的是Spring Data GemFire的一个版本,这是Spring框架的一部分,专门用于集成Apache Geode或Pivotal GemFire分布式内存数据网格。Spring Data GemFire提供了高级...
### GemFire 入门指导知识点解析 #### 一、GemFire 概述 **GemFire** 是一款高性能的分布式内存数据管理系统,适用于构建大规模、低延迟的应用程序。它提供了强大的数据管理和分发功能,能够在多台虚拟机(VM)...
spring-data-gemfire-1.8.8.RELEASEspring-data-gemfire-1.8.8.RELEASEspring-data-gemfire-1.8.8.RELEASE
### 关于Gemfire Gemfire(现更名为Apache Geode)是一种高级分布式内存数据网格解决方案,专为大规模实时数据处理而设计。它通过提供强大的数据管理功能来帮助企业解决复杂的数据访问和处理挑战,尤其是在高并发...
Pivotal GemFire是一款高性能的内存数据网格解决方案,它源自于VMware的项目,并由Pivotal公司负责进一步开发与推广。GemFire为分布式系统提供了一个弹性、可伸缩的数据层,能够处理大量并发事务,并确保数据的实时...
GemFire学习指南 GemFire是一种内存数据库,可以提供高性能、可扩展性的数据存储解决方案。下面是GemFire学习指南的知识点总结: 一、GemFire概述 GemFire是一个高性能、可扩展性的内存数据库,可以提供实时数据...
gemfire-6.5.1.jar distributed cache framework.
spring-data-gemfire, Java的Spring Data GemFire集成 Spring Data GemFireweb服务的主要目标是使用关键 GemFire 作为基础分布,在内存数据管理平台中,使用关键GemFire来构建高可伸缩性。高可用性。高可用性的应用...
标题 "gemfire os conf" 暗示我们讨论的主题是 GemFire 操作系统配置。GemFire 是一个分布式内存数据网格,由 VMware 提供,用于构建高性能、高可用性的分布式应用程序。它提供了缓存和数据存储功能,使得在大规模...
**GemFire 学习笔记** GemFire 是一款高性能、分布式内存数据网格系统,由 Pivotal 公司开发,主要用于构建大规模、高可用性的企业级应用程序。它提供了一个分布式的数据存储解决方案,支持实时数据访问和处理,...