zoukankan      html  css  js  c++  java
  • Nosql数据库

    学习NoSQL数据库知识:

    =====================================================================================================

    数据量一大,必须切分,分布式存储,所以现在的Nosql数据库都是基于这些思想

    =====================================================================================================

    1.数据量大,单一文件系统存储不下,所以多个节点存储----导致分布式(数据切分存储其实就是为了在多个存储上同时读取,这样速度就快了,当然了多个节点存储容量大)

    2.对于用户来说基本没什么影响,对于开发人员来说也没什么,他们就认为是一单一存储----导致需要一个中间层

    3.多节点的存储文件如何通信,交互,与开发人员,客户如何通信。--------------特殊的文件系统

    4.为了安全,最好备份恢复,这样就有存储冗余,这样如何实现。-----------------大的数据怎么切分,切分以后如何存储,如何获取查询

    5.如何查询,(数据分布到多个节点,如何组织起来)

    6.需要集群,怎么实现

    =====================================================================================================

    常见的:MongodbRedis等。

    场景:

    之前项目中有一些文档资源,比如在医院的系统中,一些病程记录文件(比如术前讨论,主任查房记录,首次病程记录,日常病程记录),这些文件一般没有存储在数据库里面,一班存储在FTP服务器里面,数据库里面存储FTP文件路径,就是索引数据库。

    但是如果文件有许多,数据非常大,这时候文件服务器中检索文件不是很容易,这时候我们就要使用分布式的文件系统进行文件存储,这可以备份,容灾,高可用,对于这种场景,我们可以采取Nosql数据对这些文件进行存储。

    这样我们就可以把我们的文件(图片资源,视频资源,文档资源)存储到数据库,使用时我们可以采用SQL进行查询,相比文件需要,他查询,安全性好,具有事物能力,快照机制

    (本质就是读取日志文件构造数据)。

    背景知识:

    文件系统:通过文件系统,我们可以对磁盘进行操作,但是目前的文件系统比较多,每个文件系统的实现机制都是不一样,都有不同的使用场景。个人觉得可以这么理解,文件系统就是硬盘的软件模拟,解决文件如何存储,如何检索(重点),常见的有NFS,FAT32,NTFS,HDFS,GridFS文件系统

    =====================================================================================================

    1.去年听见一个人说,对于文件存储采取的是MongDB

    2.来到北京,再次听说,对于数据量很的的分析,他们采取的也是Mongdb

    所以,下来又想学习一下这个Nosql数据库。

    =====================================================================================================

    文件系统:

    在以前仅仅在操作系统里面接触到文件系统,了解文件系统是对存储器进行管理的软件,比如存取,文件的索引(文件如何快速的查找),文件的删除以及文件的修改操作,文件数据到磁盘上的物理存储快如何关联起来这些东西,最近学习数据库以及一些NoSQL数据库,发现他们都是特制的文件系统。

    文件系统=就是软件和存储之间的纽带,所以单一存储的文件系统可能和多存储的文件系统不一致,所以需要定制这样的文件系统,这样文件的访问,存储才可以对于我们开发人员来说可以。

    =====================================================================================================

    感悟:

    数据量一大的话,单一的存储可能速度慢,同时也没有足够大的空间,即使有足够的空间,多个并发操作对单一存储效率也不高,所以就应该做存储的集群,这样数据被分割存储在不同的未知,同时数据有备份,多个线程并发效率也高,但是这样读取可能麻烦一样,因此需要特殊的文件系统。所以出现了DFS,GridFS,NFS等文件系统。所以为了提高并发与分布式场景的业务,多数系统采用自己的文件系统(一种更高级别的文件封装)进行处理,支持rollback操作,事物机制,感觉更像数据库,更加安全,对于事务,恢复有更高的要求。

    =====================================================================================================

  • 相关阅读:
    MySQL Show Processlist 整理
    由linkedin数据库泄漏引发的思考[转发]
    MySQL 严重 Bug 用户登陆漏洞[转发]
    关于博客的开始
    Linux共享库位置配置
    getopt详解
    git使用
    ArrayList读源码心得
    HashMap内部实现机制及优化第一篇
    如何才能做一个好网站系列 第三篇 最初的思路
  • 原文地址:https://www.cnblogs.com/gstsyyb/p/3791933.html
Copyright © 2011-2022 走看看