Nosql基础

作者: 词穷又词贫 | 来源:发表于2017-05-22 11:55 被阅读38次
    NoSQL介绍:
    NoSQL = Not Only SQL
    

    关系型数据库遵循ACID规则:

    A:(Atomicity)原子性,事物要么做完,要么就不做,做到一半就只能回滚
    C:(Consistency)一致性,数据库一直处于一致状态,事物运行不会改变数据库原本的一致性
    I:(Isolation)独立性,指的是并发事物之间不会互相影响
    D:(Durability)持久性,一旦事物提交后,所做的修改将会永远保存在数据库上
    

    BASE:反ACID模型,牺牲高一致性,获得可用性或者可靠性

    Basically Available:基本可用,支持分区失败
    Soft state:软状态,状态可以存在有一段时间不同步,就是异步
    Eventually consistent:最终一致,最终数据一致性即可,无需时时一致。
    

    CAP定理:(布鲁尔定理),分布式

    一致性(Consistency):所有节点在同一时间具有相同的数据
    可用性(Availability):保证每个请求,不管成功或者失败都有响应
    分区容忍性(Partition tolerance):系统中任意信息的丢失或失败不会影响系统的就运作
    
    CA,CP,AP理论中,最优是AP,一致性可以通过最终一致性
    

    数据一致性模型:强一致性,弱一致性,最终一致性

    Quorum系统NRW策略:投票半数以上
        N:数据总副本数
        R:完成读操作所需读取的最少副本数
        W:完成写操作所需写入的最少副本数   
        强一致性:R+W>N
        最终一致性:R+W<=N
    两段式提交:2PC(Two Phase Commint Protocol)
        两类节点:协调者,事物参与者
        两阶段:请求阶段(由协调者发出请求),事物参与者提交与确认阶段
    时间戳策略:依据顺序执行命令的时间戳来保证一致性
    Paxos:帕克索斯算法,多个过程,通过消息传递,达成某种一致性
    向量时钟:数据集多个副本,每个副本更新类似版本号机制,同步至其他节点相同副本
    

    分布式计算的优点:

    可靠性(容错),可扩展性,资源共享,灵活性,更快的速度,开放系统,更高的性能
    

    分布式计算的缺点:

    故障排除,软件,网络,安全性
    

    http://nosql-database.org/
    NoSQL的数据存储模型:

    键值模型:Key-value存储
        优点:O1类型,数据查找速度快
        缺点:数据无结构,通过被当作字符串或者二进制数据
        应用场景:内容缓存
        实例:Redis,Dynamo
    列式模型:
        数据模型:数据按列式存储,将同一列数据存在一起,(关系型数据库以“行”为准)
        优点:查找迅速(只有被涉及到的列才会被读取),可扩展性强,易于实现分布式
        缺点:功能相对SQL很有限
        应用场景:分布式文件系统或分布式存储
        实例:Hadoop/HBase,Cassandra
    文档模型:
        数据模型:与键值模型类型,value指向结构化数据,可以嵌套文档
        优点:数据格式要求不严格,无需事先定义结构,自动分片
        缺点:查询性能不是特别高,缺乏同意查询语法
        应用场景:web应用(字段按需创建,比较灵活)
        实例:MongoDB,CouchDB,Elastic
    图式模型:
        数据模型:图结构模型
        优点:利用图结构相关算法提高性能,特殊场景应用需求
        缺点:难以实现分布式,功能在特别方向才合适
        应用场景:社交网络,推荐系统,关系图谱
        实例:Neo4J

    相关文章

      网友评论

        本文标题:Nosql基础

        本文链接:https://www.haomeiwen.com/subject/mhybxxtx.html