gemfire和ignite数据库跟redis对比的区别

 在Ignite以前大规模、大数据量、高並发企业级或者互联网应用为了解决数据缓存、降低数据库负载、提高查询性能等突出问题,很多采用了Hazelcast或者Oracle Coherence或者GemFire(比如12306网站)或者目前應用越来越广泛的ignite数据库跟redis对比等缓存技术本文对这些相关的技术做了简单的比较,基本内容来源于其官方网站进行了翻译整理,方便更多的人了解他



Ignite将在/C#和/C#和/C#数据类型(对象)的原生支持,用户可以在Ignite缓存中轻易的存储任何程序和领域对象

ignite数据库跟redis对比不允许用户使鼡自定义数据类型,仅支持预定义的基本数据结构集合比如Set、List、Array以及一些其他的。

Ignite提供客户端缓存最近访问数据的直接支持

ignite数据库跟redis對比不支持客户端缓存。

Ignite支持在服务器端靠近数据并行地直接执行任何Java, C++和.NET/C#代码。

ignite数据库跟redis对比通常没有任何并行数据处理的能力服务器端基本只支持LUA脚本语言,服务器端不直接支持Java, .NET,或者C++代码执行

Ignite支持完整SQL(ANSI-99)语法以查询内存中的数据。

ignite数据库跟redis对比不支持任何查询语訁只支持客户端缓存API。

Ignite提供对客户端和服务器端持续查询的支持用户可以设置服务器端的过滤器来减少和降低传输到客户端的数据量。

ignite数据库跟redis对比提供客户端基于键值的事件通知的支持然而,他不提供服务器端的过滤器因此造成了在客户端和服务器端中更新通知網络流量的显著增加。

按照官方的说法Ignite是很强大的整体解决方案和开发平台,功能很多而且复杂和相关技术的比较中也没有提到缺点戓者不足,这个只能使用过程中逐步发现

从设计的角度看,Ignite对开发者非常友好提供了丰富的、符合各种标准和规范的API,如果在已有项目或者系统中集成的话对已有代码的侵入性或者对已有架构设计的破坏性较小,在已有架构代码中做出不是很大的修改就可以在整个系统中加入一个数据缓存层或者内存计算层,对下可以映射各种关系库或者非关系库对上方便的对接应用系统。

目前来看一个显而易見的问题就是,社区刚刚建立文档等开发资料较少,虽然 Ignite本身历史尚短但是既然来源于历史不算短的商业软件,还是经过实际生产环境验证的可用性肯定是有的。社区的活跃和文档的完善还需要较长的时间应用开发商和开发者对他的认知和接受,也还需要一个过程Ignite技术和社区是不是会像Hadoop等技术一样活跃甚至火爆,或者是不是能替代一些技术还需要观察,路还很长

Apache Ignite 内存数组组织框架是一个高性能、集成和分布式的内存计算和事务平台用于大规模的数据集处理,比传统的基于磁盘或闪存的技术具有更高的性能同时他还为应用和鈈同的数据源之间提供高性能、分布式内存中数据组织管理的功能。

在Ignite以前大规模、大数据量、高并发企业级或者互联网应用为了解决數据缓存、降低数据库负载、提高查询性能等突出问题,很多采用了 Hazelcast或者Oracle Coherence或者GemFire(比如12306网站)或者目前应用越来越广泛的ignite数据库跟redis对比等缓存技术本文对这些相关的技术做了简单的比较,基本内容来源于其官方网站进行了翻译整理,方便更多的人了解他

Apache Ignite内存数组组织框架是一个高性能、集成和分布式的内存计算和事务平台,用于大规模的数据集处理比传统的基于磁盘或闪存的技术具有更高的性能,同時他还为应用和不同的数据源之间提供高性能、分布式内存中数据组织管理的功能

Ignite来源于尼基塔·伊万诺夫于2007年创建的GridGain系统公司开发的GridGain軟件,尼基塔领导公司开发了领先的分布式内存片内数据处理技术-领先的Java内存片内计算平台今天在全世界每10秒它就会启动运行一次。他囿超过20年的软件应用开发经验创建了HPC和中间件平台,并在一些创业公司和知名企业都做出过贡献包括Adaptec, Visa和BEA Systems。尼基塔也是使用Java技术作为服務器端开发应用的先驱者1996年他在为欧洲大型系统做集成工作时他就进行了相关实践。

2014 年3月GridGain公司将该软件90%以上的功能和代码开源,仅在商业版中保留了高端企业级功能如安全性,数据中心复制先进的管理和监控等。 2015年1月GridGain通过Apache

Ignite将在/C#和/C#和/C#数据类型(对象)的原生支持,用户鈳以在Ignite缓存中轻易的存储任何程序和领域对象

ignite数据库跟redis对比不允许用户使用自定义数据类型,仅支持预定义的基本数据结构集合比如Set、List、Array以及一些其他的。

Ignite提供客户端缓存最近访问数据的直接支持

ignite数据库跟redis对比不支持客户端缓存。

Ignite支持在服务器端靠近数据并行地直接执行任何Java, C++和.NET/C#代码。

ignite数据库跟redis对比通常没有任何并行数据处理的能力服务器端基本只支持LUA脚本语言,服务器端不直接支持Java, .NET,或者C++代码执行

Ignite支持完整SQL(ANSI-99)语法以查询内存中的数据。

ignite数据库跟redis对比不支持任何查询语言只支持客户端缓存API。

Ignite提供对客户端和服务器端持续查询的支持用户可以设置服务器端的过滤器来减少和降低传输到客户端的数据量。

ignite数据库跟redis对比提供客户端基于键值的事件通知的支持然而,他不提供服务器端的过滤器因此造成了在客户端和服务器端中更新通知网络流量的显著增加。

按照官方的说法Ignite是很强大的整体解决方案和开发平台,功能很多而且复杂和相关技术的比较中也没有提到缺点或者不足,这个只能使用过程中逐步发现

从设计的角度看,Ignite對开发者非常友好提供了丰富的、符合各种标准和规范的API,如果在已有项目或者系统中集成的话对已有代码的侵入性或者对已有架构設计的破坏性较小,在已有架构代码中做出不是很大的修改就可以在整个系统中加入一个数据缓存层或者内存计算层,对下可以映射各種关系库或者非关系库对上方便的对接应用系统。

目前来看一个显而易见的问题就是,社区刚刚建立文档等开发资料较少,虽然 Ignite本身历史尚短但是既然来源于历史不算短的商业软件,还是经过实际生产环境验证的可用性肯定是有的。社区的活跃和文档的完善还需偠较长的时间应用开发商和开发者对他的认知和接受,也还需要一个过程Ignite技术和社区是不是会像Hadoop等技术一样活跃甚至火爆,或者是不昰能替代一些技术还需要观察,路还很长

但是按照我对它的理解,我更願意用下面的语言来描述它GemFire是一个高性能的分布式内存对象缓存系统,如果非要说它是数据库那也只能算是一个Key/Value数据库(我更愿意称之為Key/Value存储系统)

我们通过把对象或数据缓存在内存中,减少对传统关系型数据库的读写次数(减少IO瓶颈)从而使我们的应用支持更多的TPS,更多的並发用户数GemFire能够在部分场景下对关系型数据库起到很好的补充(甚至替代)作用,它可以作为应用层与传统数据层的“润滑剂”

二、关于GemFire嘚前世今生?

Vfabric产品线请注意,VMWare当时也收购了ignite数据库跟redis对比项目在2013年4月EMC与VMware/GE合资成立一家新公司Pivotal,VMware慷慨的贡献出了它的vfabric产品线以及它收購的一些开源项目。

三、GemFire有什么特点

灵活的Region(数据对象集或者可理解为表)分布式处理:同一集合数据(可理解为一个表的数据)可以整集多点同步或切割后不同点保存,并支持数据实时再平衡(rebalance)既数据分隔保存后若加入新的空闲服务器数据可以在不重启服务的情况丅重新切割和平衡数据,从而达到真正的数据在线动态延展?     具有持续性的数据高可用性和容错性:各个分散的数据点可以配置一个或多個基于内存的热备数据点当主数据点宕机的情况下,其中一个热备点就会提升称为主数据点同时可以继续在空闲机器上创建备份点,從而达到数据的持续的可用性同时数据可以通过配置同步或异步地持续化到本地硬盘,或者到指定的数据库或文件中?     数据全内存和蔀分内存策略:通过配置可以将数据全部存入内存,或者通过将非频繁使用数据挤出策略(LRU)来将部分频繁适用数据保存于内存中达到成夲效益最大化?     内置资源优化器用以降低JAVA GC所带来的延迟支持单个大容量Cache点(一般服务器可配置超过40GB内存的Java heap 亲密关系数据同业务逻辑聚合:亲密关系数据指需要相互直接依赖完成一个交易的多个数据,例如客户A和属于客户A的产品数据GemFire可以将业务逻辑涉及到亲密关系数据放箌同一个计算机进程来处理,避免数据网络传输和数据序列化等带来的延迟并极大体现Share Nothing的涉及理念,因为互相不依赖从而加大服务的涉忣延展性?     最大化的并行处理:数据各子集合和业务逻辑可分散在各点并行处理而不需要想数据库等产皮按顺序处理?     事件监听处理:Cache點可以根据数据的增、删、改和过期等事件来触发另外的业务逻辑处理。?     类消息队列处理:客户端可以注册其感兴趣数据在Cache点当满足條件数据出现时,自动向客户端发布可实现类似于消息队列的Queue 或 Delta数据传输:所有数据的网络同步可以选择只将变化碎片传输同步,例如當一个客户只有地址数据发生改变时就只需要将地址同步而非整个客户数据对象。

最后想问一句,今年你买到回家的火车票了吗如果你用过12306的网站,那么GemFire已经为你服务过了虽然只是余票查询。在接下来的10个月里我会用每两周一篇文章的频率来介绍GemFire.


我要回帖

更多关于 茜什么内衣 的文章

 

随机推荐