redis_NoSql入门概述数据模型简介

发布时间:2018-11-15  栏目:NoSQL  评论:0 Comments

  以下面的背景去比关系项目数据库暨非关系型数据库的距离(一个电商客户、订单、订购、地址模型来对待之下关系项目数据库与非关系型数据库)

那个数额时之3V

  • 海量Volume
  • 多样Variety
  • 实时Velocity

  传统数据库一般设计会以ER图(1:1/1:N/N:N,主键等)

互联网需求的3高

  • 高并发
  • 高可扩
  • 高性能

  而NoSql使用的是BSON

BSON

BSON()是相同种类json的同栽二进制形式的储存格式,简称Binary JSON,
她同JSON一样,支持内嵌的文档对象和数组对象

BSON数据

{
 "customer":{
   "id":1136,
   "name":"Z3",
   "billingAddress":[{"city":"beijing"}],
   "orders":[
    {
      "id":17,
      "customerId":1136,
      "orderItems":[{"productId":27,"price":77.5,"productName":"thinking in java"}],
      "shippingAddress":[{"city":"beijing"}]
      "orderPayment":[{"ccinfo":"111-222-333","txnid":"asdfadcd334","billingAddress":{"city":"beijing"}}],
      }
    ]
  }
}

一、什么是BSON

– 高并发的操作是不绝建议有涉嫌查询的,互联网商家为此冗余数据来避免提到查询

  BSON是如出一辙种类json的一二进制形式之囤格式,简称Binary
JSON,它和json一样,支持内嵌的文档对象为数组对象。(看下例子)

– 分布式事务是支撑不了极多之起的

{
 “customer”:{
   “id”:1136,
   “name”:”Z3″,
   “billingAddress”:[{“city”:”beijing”}],
   “orders”:[
    {
      “id”:17,
      “customerId”:1136,
     
“orderItems”:[{“productId”:27,”price”:77.5,”productName”:”thinking in
java”}],
      “shippingAddress”:[{“city”:”beijing”}]
     
“orderPayment”:[{“ccinfo”:”111-222-333″,”txnid”:”asdfadcd334″,”billingAddress”:{“city”:”beijing”}}],
      }
    ]
  }
}

聚集模型

  • KV键值
  • BSON
  • 列族

顾名思义,是以列存储数据的。最要命之特性是好存储结构化和一半结构化数据,方便做数据压缩,
对对某一样排或者某几乎列的询问有甚坏之IO优势。

图片 1

Paste_Image.png

  • 图形

图片 2

Paste_Image.png

  上面的json类型的字符串就是一个Bson,这样好处理系列之数据结构。

仲、传统的涉项目数据库与非关系型数据库查询的歧异

  人情的体系以查询多张表的涉时还采用关联查询来拍卖,但是在分布式开发时好忌讳这样的涉及查询,高并发的操作时莫极端建议发关联查询的,互联网公司用冗余数据来避免关系查询,分布式事务是支持不了无以复加多之起的。

  而以Redis中运用的凡KV键值对贯彻之,使用key直接就是得查询出来整个涉及的数量。

老三、聚合模型

  1.KV键值对

  2.列族(纵向关系)

  3.Bson

  4.图形(复杂的涉及,网状关系)

留下评论

网站地图xml地图