系统架构——NOSQL的应用

为了理解NOSQL,不仿先看下一个应用系统数据是怎么流动的。

数据库读取硬盘数据,生成查询结果,发送到应用程序变成键值对集合,然后程序中读取这些键值对,组装成相应的序列化对象,再传输到客户端呈现。

但很多系统就是直接数据的存取,并没有多少复杂的业务逻辑,比如电商系统的商品展示,页面只要读取相应的商品信息就行了,那是不是有什么办法,让数据直接到达客户端?答案是肯定的,比如微软提供Sql Server的ODATA接口,不过ODATA还是需要关系数据库支撑的,Sql Server到了2016版本才支持InMemory,如果不使用InMemory,性能上肯定是没有太大的变化,只是说多了一层封装,可以少写点WEB服务。另外就是基于NOSQL的MongoDB和Ridis之类的,这类产品集合了数据缓存的功能,而且原生返回Json对象,不需要转换就可以直接推送到客户端,这样就大大提高了程序的性能,和开发效率。

以MongoDb为例,看下NOSQL数据库提供了哪些功能。

1、CRUD操作

除了正常的添加删除,还提供批量写入,文本搜索,空间数据查询。数据的检索功能,大大降低了应用系统的数据过滤的压力,同时也确保了数据检索的准确性。

2、聚合

有管道方式和mapReduce方式进行数据汇总,获取分组数据。

3、数据结构

提供结构定义,数据检验,以保证数据的完整性。

4、事务

数据的完整性,减少数据冲突。

5、索引

增加数据的检索速度。

6、复制

数据热备,增强系统的可用性。

7、集群

集群增加了系统的可靠性,可以使用多个服务器分担大并发时的系统压力。

系统架构——NOSQL的应用

上一篇:nuxt.js 本地开发跨域问题(Access-Control-Allow-Origin)及其解决方案


下一篇:Sharding-JDBC 快速入门(水平分表)