NoSQL入门概述,redis_NoSql入门概述

一、为什么要使用Nosql

入门概述

  今天我们可以通过第三方平台(如:google,facebook)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。我们如果要对这些用户数据进行挖掘,那么Sql数据库已经不适合这些应用了,NoSql数据库的发展却能很好的处理这些大的数据。

1 NoSQL是什么?

 

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,
泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。

二、什么是NoSql

(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

  NoSql(NoSql = Not Only
SQL),不仅仅是sql

2 能干嘛?

  泛指非关系型数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库产生就是为了解决大规模数据集合多重数据类型带来的挑战,尤其是大数据应用的难题,包括超大规模的数据储存。

易扩展:

  这些类型的数据库存储不需要固定的模式,无需多余的操作就可以横向扩展。

NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。
数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。

 

大数据量高性能:

三、NoSql可以做什么

NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。
这得益于它的无关系性,数据库的结构简单。
一般MySQL使用Query
Cache,每次表的更新Cache就失效,是一种大粒度的Cache,
在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的,
是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了

  1.易扩展

多样灵活的数据模型:

    NoSql数据库种类繁多,但是一个共同的特点是去掉关系数据库的关系特性

NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,
增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦

    数据之间无关系,这样就非常容易扩展。也无形之间,在架构层面上带来了可扩展的能力。

传统RDBMS VS NOSQL:

  2.大数据量高性能

RDBMS vs NoSQL

    NoSql数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库结构简单。

RDBMS

    一般MySql使用Query
Cache,每次表的更新Cache就失效,是一种大粒度的Cache。在针对web2.0的交互频繁的应用,Cache性能不高,而NoSql的Cache是记录级的,是一种细粒度的Cache,所以NoSql在这个层面上
来说就要性能高很多了。

  • 高度组织化结构化数据
  • 结构化查询语言(SQL)
  • 数据和关系都存储在单独的表中。
  • 数据操纵语言,数据定义语言
  • 严格的一致性
  • 基础事务

  3.多样灵活的数据模型

NoSQL

    NoSql无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而非关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。

  • 代表着不仅仅是SQL
  • 没有声明性查询语言
  • 没有预定义的模式
    -键 – 值对存储,列存储,文档存储,图形数据库
  • 最终一致性,而非ACID属性
  • 非结构化和不可预知的数据
  • CAP定理
  • 高性能,高可用性和可伸缩性

  4.RDBMS
vs NoSql

3 去哪下?

    RDBMS

Redis

      - 高度组织化结构化数据

memcache

      -
结构化查询语言(SQL)

Mongdb

      -
数据和关系都存储在单独的表中

4 怎么玩?

      -
数据操纵语言,数据定义语言

KV(键值对)

      - 严格的一致性

Cache

      - 基础事务

Persistence

    NoSql

 

      - 代表着不仅仅是sql

3V+3高

      - 没有声明性查询语言

大数据时代的3V

      - 没有预定义的模式

  海量Volume

      - 键 –
值对存储,列存储,文档存储,图形数据

  多样Variety

      -
最终一致性,而非ACID属性

  实时Velocity

      -
非结构化和不可预知的数据

互联网需求的3高

      - CAP定理

  高并发

      -
高性能,高可用性和伸缩性

  高可扩

四、怎么玩(在此先提一下,后面详细介绍)

  高性能

  1.KV

  2.Cache

  3.Persistence

 

五、3V+3高

  大数据时代的3v(海量【Volume】,多样【Variety】,实时【Velocity】)

  互联网需求的3高(高并发,高扩展,高性能)

 

六、多数据源类型的存储问题(以阿里巴巴中文网首页为例)

  1.商品基本信息

    名称、价格、出厂日期、生产商等几乎不变的冷数据存放在关系型数据库
mysql/oracle中,目前淘宝在去O化(拿掉Oracle),而淘宝内部使用的Mysql也是阿里自己改造过的。

  2.商品的描述、详情、评价信息(多文字类型)

    多文字信息描述类,IO读写性能变差,存放文档数据库MongDB中

  3.商品的图片

    商品图片展示类存放在分布式的文件系统中(淘宝的TFS,
google的GFS, hadoop的HDFS)

  4.商品的关键字

    搜索引擎,淘宝内用ISearch

  5.商品的波段性热点高频信息

    内存数据库Tair、Redis、Memcache

  6.商品的交易、价格计算、积分累计

    外部系统,外部第三方支付接口,支付宝

  总结大型互联网应用(大数据、高并发、多样数据类型)难点和解决方案

   难点:

    1.数据类型多样性

    2.数据源多样性和变化重构

    3.数据源改造而数据服务平台不需要大面积重构

   解决方案:

    EAI和统一数据平台服务层(UDSL)

 

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注