本来我不想多说什么…毕竟官网以及很多大佬的博客都介绍的很详细了,但是不知道其他小伙伴是不是跟我一样,我真的每次看这些特性的时候,首先心想:“挖槽,这么多!”,仔细一看,心想:“挖槽,这么强!”,看完之后,过了一会儿,心想:“哈?啥玩意儿?”。没办法,特性太多…功能太强…算了,我用通俗的语言描述一下我的想法吧,如果有错误,请大佬及时指出,我认真改正!谢谢!
ignite是什么?
a. 以内存为中心的数据平台。
啥是固化内存?哈?我的理解啊,就是其他数据库是把内存当成缓冲区,然后赶紧就把数据以文件形式存入硬盘了,这玩意儿说,你们内存这么大,我不占的话那不就浪费了,正好内存比硬盘快,那就大胆地用内存呗,反正很多大佬的服务器内存都是T为级别的…一个字:贪
b. 可持久化、强一致和高可用。
原生持久化是一个分布式的,支持ACID的以及兼容SQL的磁盘存储,说白了吧,为啥其他数据库就把数据以文件形式存入硬盘,那不就是因为内存不持久呗,重启一下,宕机一下,岂不是GG,所以,这玩意儿就既占内存,又占磁盘,俩全占,内存中有的,那就直接用内存,没有的话,通过索引找到硬盘中存放的数据,再写入内存和读数据库。ignite的分布式支持两种方式,一种是分区模式的,一种直接就是复制模式。两个字:真贪
强一致,就是传统数据库中所说的ACID呗,原来你们支持的事务处理的能力,这玩意儿也支持。
高可用,就是……各种地方都能用呗…不懂这具体是啥新特性(迷惑.jpg)
c. 强大的SQL,键值存储和相关API。
提供了完整的SQL、DDL、DML支持。就是说啊,不用敲代码,直接写SQL语句,就能操作啦。
ignite的内存数据网格组件,就是一个完整的事务型分布式的键值存储。前一段时间不是NOSQL特别火嘛,反正我只学过一点Redis,这货就说,我也支持键值存储,也可以水平扩展,而且我还直接就提供java, C++和.NET等语言的键值存储的API啦,老方便了。
d. 并置处理。
并置处理啊,就是原来的数据库不都是辛辛苦苦在一个或一群服务器上安装一波嘛,然后客户机再通过各种方式跟服务器请求数据。这种方式对服务器性能要求也是蛮高的,而且对于大量数据的传输的话,就会遇到性能的瓶颈,客户机那小东西也挺累的。而ignite这家伙就说,哈,我是分布式的,我服务器多呀,来来来,你们这些边缘的小玩意儿不用算啦,需要算啥给我发来,我这一大朵云帮你算,然后在数据所在的节点上算完之后,直接把计算结果发回去了,大大地减少了数据量的传输,节省了网络流量。
e. 目前还有一点小缺陷:
官网的文档中说,目前ACID事务仅仅在键值存储中支持,也支持事务可以跨越不同服务器不同分区中的键。ignite在SQL层支持原子性还不支持事务一致性,听说以后的新版本会支持SQL事务。
总之,一句话,ignite就是分布式的,可以存在内存上的,可以存在硬盘上的,支持SQL和NOSQL的,可以节省一些网络流量和网络边缘节点的压力的,数据库……(喘气.jpg)
具体使用方法的话,待我下一篇再说吧~
ps:ignite远不止我说的这么简单…提供的支持还有超级多,正如官网所说,Ignite是很强大的整体解决方案和开发平台。