數據庫大師成長日記:您最須要了解的NoSQL非關係型數據庫

朋友們,咱們平時使用的數據庫,大多都是關係型數據庫,包括MySQL、PostgreSQL、SQLServer等。關係型數據庫的特色是數據的存儲經過二維表格實現,將數據存儲在相互獨立的表格中。web

近年來,隨着互聯網的飛速發展,數據的形態發生了很大改變,非關係型數據庫NoSQL應運而生、愈來愈流行。NoSQL主要包括鍵值(Key-Value)存儲數據庫、列存儲(Column-oriedted)數據庫、面向文檔(Document-Oriented)數據庫、圖形(Graph)數據庫四種,下面介紹三款最經常使用的NoSQL數據庫。redis

Memcached(鍵值數據庫)

Memcaced是一個開源的、高性能的、具備分佈式內存對象的緩存系統。經過它能夠減輕數據庫負載,加速動態的web應用,最第一版本由LiveJoumal 的Brad Fitzpatrick在2003年開發完成。目前全球有很是多的用戶都在使用它來架構主機的大負載網站或提高主機的高訪問網站的響應速度。數據庫

Memcached是一種純內存緩存系統,數據就像一張巨大的hash表,數據以key-value對的方式存在。經過緩存常常被存取的對象或數據,從而減輕了頻繁讀取數據庫的壓力,提升網站的響應速度,構建出快速更快的可擴展的Web應用。json

Memcached很是適合須要超高性能讀寫速度、持久化保存的應用場景,可是最近幾年逐漸被其餘的持久化產品替代如Redis。緩存

Redis(鍵值數據庫)

Rediskey-value型存儲系統。相比Memcached,redis支持的存儲value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)等。這些數據類型都支持push/pop、add/remove及取交集、並集和差集及更豐富的操做,並且這些操做都是原子性的。架構

爲了保證效率,redis的數據都是緩存在內存中。區別是redis會週期性的把更新的數據寫入磁盤或者把修改操做寫入追加的記錄文件,而且在基礎上實現了master-slave(主從)同步。分佈式

Redis提供了Python、Ruby、Erlang、PHP客戶端,使用很是方便。支持內存緩存、支持持久化存儲、數據庫類型更豐富、支持主從集羣、分佈式 、支持隊列等特殊功能。性能

MongoDB(文檔數據庫)

MongoDB是一個介於關係型數據庫和非關係型數據庫之間的產品,是非關係型數據庫當中功能最豐富,最像關係數據庫的。MongoDB支持的數據庫結構很是鬆散,相似json的bjson格式,所以能夠存儲比較複雜的數據類型。Mongodb最大的特色是他支持的查詢語言很是強大,其語法有點相似於面向對象的查詢語言,幾乎能夠實現相似關係數據庫單表查詢的絕大部分功能,並且還支持對數據創建索引。學習

MongoDB使用高效的二進制存儲數據,她具備面向集合(Collenction-Orented)存儲、模式自由(schema-free)、支持動態查詢、支持徹底索引、支持複製和故障恢復、自動處理碎片、以支持雲計算層次的擴展性等諸多優異性能,很是流行、應用也很是普遍。網站

雖然當前數據庫的主流仍是關係型數據庫,但NoSQL的應用只會愈來愈普遍,緣由很是簡單,由於當代和將來咱們面對的數據類型愈來愈複雜,傳統的數據存儲方式已經愈來愈沒法知足要求。

朋友們,若是您有興趣,能夠更深刻的瞭解下NoSQL,對您將來的學習、就業確定會有莫大的幫助。

相關文章
相關標籤/搜索