zoukankan      html  css  js  c++  java
  • 系统架构——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、集群

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

  • 相关阅读:
    【JAVASCRIPT】JS实现淘宝,百度评分功能
    【数据结构】链式线性表的几种常用用法
    【JAVASCRIPT】无刷新评论
    【JAVASCRIPT】表单序列化问题
    【JAVASCRIPT】如何不使用jquery函数和ajax框架实现ajax效果
    图灵北京作译者交流会
    是起点,而非终点——评《程序员的思维修炼》
    2011图灵新春特献
    图灵2011.01书讯
    图灵2010.12书讯
  • 原文地址:https://www.cnblogs.com/icoolno1/p/12818843.html
Copyright © 2011-2022 走看看