高性能计算机系统 各种流行介绍(5)

电脑杂谈  发布时间:2018-01-15 21:15:28  来源:网络整理

NodeJS+MongoDB

因为是JSON,MongoDB也天然支持js的语法交互,所以又吸引了很多NodeJS服务端同学,甚至有人宣传说NodeJS+MongoDB组合要代替PHP+MySQL的组合了,当然,这更多是给搞js的同学一种方案选择。

MongoDB在很早就有自己的查询语言,与SQL一样强大,不过语法是js格式,下图是MongoDB查询语言与SQL的一个简单对比:

Mongo Query Language and SQL

是不是和SQL很像,这也是MongoDB过人之处,它第一天就知道客户需求并不只是要高性能,要俘获程序员的心,必须要提供强大高效的访问接口语言,由于是文档型,SQL主要是为了面向关系型设计的语言,但是SQL确实非常牛逼,所以提供一个面向文档型类似SQL的语言非常有价值。

MongoDB 也是一个天生支持分布式的,数据自动分片,还支持MapReduce,也内置了一个分布式文件系统GridFS,另外可以挂接多种存储引擎,这些都是非常诱人的功能。

MongoDB3.4

2016年MongoDB发布了3.4版本,也有一些大的更新,主要的新特性有:

1) 支持View

2) 新增对decimal支持,最多支持34位小数位。

3) 新增支持collation,也就是字符串校验集,校验集会影响字符对比与排序,3.4以前字符串是按字节严格对比,通过设置collation后可以指定校验方式,比如忽略大小写等等,汉字按拼音排序(官方文档特意举了拼音排序这个例子,说明中国用户在MongoDB中份量不小)等等。

4) 集群管理与日志复制方面也有了进一步增强

Mongo 公司也推出了自己的云服务,MongoDB Atlas,支持AWS上部署,我认为这也是更好的一种云计算服务模式。

六、Redis(最好的缓存)

Redis

说Redis是缓存服务,估计有些人会不开心,因为Redis也可以把持久化,但是在大多数情况Redis的竞争力是提供缓存服务。说到缓存服务必然会想到Memcached,因为几年前Memcached是最流行的缓存服务,但随着Redis的发展,Redis在很多方面比Memcached更好用,比如,Redis支持更多种数据类型,包括hash、set、list等等。Redis也支持数据持久化,另外2015年发布的Redis 3.0开始支持集群服务。Redis还支持subscribe/publish命令,可以用于简单的消息发送与订阅,总体而言95%的情况,如果是缓存服务,我们都可以选择Redis。

Redis在2016年发布了3.2版本,最重要的是支持GEO地理信息存储支持。

Redis原计划下个版本是3.4,后来计划重命令为Redis 4.0,今年已经推出了RC1,Redis4.0有许多大的变化,最重要的是模块化特性,官方希望Redis是一个底层基础设施,开发者可以在上面构建更多有意思的东西,比如对神经网络、机器学习数据计算扩展,还有如图数据、二级索引、时序数据、全文索引等等。

(备注:antirez是redis最核心开发成员,90%以上的代码是他贡献的)

七、ElasticSearch(最好的搜索服务)

各种流行介绍Elasticsearch

Elasticsearch本是一项搜索服务,但是因为它实在太强大太好用了,以至于有一些业务把它作为数据存储与搜索服务。搜索与本来就非常密切,很早以前的数据搜索都会采用内置的like模糊查询或全文检索实现,但随着互联网搜索业务的快速发展,对搜索选项也要求更丰富,另外早期的搜索并不一定需要这样完全实时的需求,所以对全文搜索的支持一直不太理想,这也产生了很多的搜索引擎产品,Lucence就是最流行的开源搜索引擎框架。近几年随着大数据快速发展,搜索引擎需要有更强的分布式支撑,另外由于业务的竞争,需要大量的日志数据采集与分析,实时性要求更高, Elasticsearch 在这方面脱颖而出, Elasticsearch 是基于lucence开发的分布式搜索服务,并不只是一个框架(Lucence需要二次开发),而是可以直接使用的服务。 Elasticsearch 对文档模型也有了进一步的增强,更有一些文档型的感觉,甚至有人把它完全当分布式数据存储服务(主流大数据存储真的没有太好的准实时查询功能)。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-60377-5.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...