redis_NoSql入門概述

1、爲何要使用Nosqlmysql

  今天咱們能夠經過第三方平臺(如:google,facebook)能夠很容易的訪問和抓取數據。用戶的我的信息,社交網絡,地理位置,用戶生成的數據和用戶操做日誌已經成倍的增長。咱們若是要對這些用戶數據進行挖掘,那麼Sql數據庫已經不適合這些應用了,NoSql數據庫的發展卻能很好的處理這些大的數據。web

 

2、什麼是NoSqlsql

  NoSql(NoSql = Not Only SQL),不只僅是sql數據庫

  泛指非關係型數據庫。隨着互聯網web2.0網站的興起,傳統的關係數據庫在應付web2.0網站,特別是超大規模和高併發的SNS類型的web2.0純動態網站已經顯得力不從心,暴露了不少難以克服的問題,而非關係型的數據庫則因爲其自己的特色獲得了很是迅速的發展。NoSQL數據庫產生就是爲了解決大規模數據集合多重數據類型帶來的挑戰,尤爲是大數據應用的難題,包括超大規模的數據儲存。網絡

  這些類型的數據庫存儲不須要固定的模式,無需多餘的操做就能夠橫向擴展。架構

 

3、NoSql能夠作什麼併發

  1.易擴展oracle

    NoSql數據庫種類繁多,可是一個共同的特色是去掉關係數據庫的關係特性 。分佈式

    數據之間無關係,這樣就很是容易擴展。也無形之間,在架構層面上帶來了可擴展的能力。高併發

  2.大數據量高性能

    NoSql數據庫都具備很是高的讀寫性能,尤爲在大數據量下,一樣表現優秀。這得益於它的無關係性,數據庫結構簡單。

    通常MySql使用Query Cache,每次表的更新Cache就失效,是一種大粒度的Cache。在針對web2.0的交互頻繁的應用,Cache性能不高,而NoSql的Cache是記錄級的,是一種細粒度的Cache,因此NoSql在這個層面上 來講就要性能高不少了。

  3.多樣靈活的數據模型

    NoSql無需事先爲要存儲的數據創建字段,隨時能夠存儲自定義的數據格式。而非關係數據庫裏,增刪字段是一件很是麻煩的事情。若是是很是大數據量的表,增長字段簡直就是一個噩夢。

  4.RDBMS vs NoSql

    RDBMS

      - 高度組織化結構化數據

      - 結構化查詢語言(SQL)

      - 數據和關係都存儲在單獨的表中

      - 數據操縱語言,數據定義語言

      - 嚴格的一致性

      - 基礎事務

    NoSql

      - 表明着不只僅是sql

      - 沒有聲明性查詢語言

      - 沒有預約義的模式

      - 鍵 - 值對存儲,列存儲,文檔存儲,圖形數據

      - 最終一致性,而非ACID屬性

      - 非結構化和不可預知的數據

      - CAP定理

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

4、怎麼玩(在此先提一下,後面詳細介紹)

  1.KV

  2.Cache

  3.Persistence

 

5、3V+3高

  大數據時代的3v(海量【Volume】,多樣【Variety】,實時【Velocity】)

  互聯網需求的3高(高併發,高擴展,高性能)

 

6、多數據源類型的存儲問題(以阿里巴巴中文網首頁爲例)

  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)

相關文章
相關標籤/搜索