十年網站開發(fā)經驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網站問題一站解決
《七周七數據庫》([美]Eric Redmond)電子書網盤下載免費在線閱讀
站在用戶的角度思考問題,與客戶深入溝通,找到泗縣網站設計與泗縣網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網站、成都網站制作、企業(yè)官網、英文網站、手機端網站、網站推廣、申請域名、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋泗縣地區(qū)。
資源鏈接:
鏈接:
密碼:v4zg ?
書名:七周七數據庫
作者:[美]Eric Redmond
譯者:王海鵬
豆瓣評分:6.9
出版社:人民郵電出版社
出版年份:2013-5-30
頁數:256
內容簡介:
如今,我們要面對和使用的數據正在變得越來越龐大和復雜。如果說數據是新的石油。那么數據庫就是油田、煉油廠、鉆井和油泵。作為一名現代的軟件開發(fā)者,我們需要了解數據管理的新領域,既包括rdbms,也包括nosql。
《七周七數據庫》遵循《七周七語言》的寫作風格和體例,帶領你學習和了解當令最熱門的開源數據庫。在簡單的介紹之后,本書分章介紹了7種數據庫。這些數據庫分別屬于5種不同的數據庫風格,但每種數據庫都有自己保存數據和看待世界的方式。它們依次是postgresql、riak、apache hbase、mongodb、apache couchdb、neo4j和redis。本書將深入每一種數據庫,介紹它們的優(yōu)勢和不足,以及如何選取一種最符合你的應用需求的數據庫。
《七周七數據庫》適合數據庫架構師、數據庫管理員,以及想要了解和學習各種nosql數據庫技術的程序員閱讀。本書將幫助讀者了解、選擇和應用這些數據庫,從而更好地發(fā)揮日益增長的大數據的能力。
《七周七數據庫》適用于數據庫架構師、想要學習nosql數據庫技術的程序員、數據庫管理員。
《Redis設計與實現》(黃健宏)電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:
提取碼:ecau
書名:Redis設計與實現
作者:黃健宏
豆瓣評分:8.6
出版社:機械工業(yè)出版社
出版年份:2014-6
頁數:388
內容簡介:
【編輯推薦】
系統(tǒng)而全面地描述了 Redis 內部運行機制
圖示豐富,描述清晰,并給出大量參考信息,是NoSQL數據庫開發(fā)人員案頭必備
包括大部分Redis單機特征,以及所有多機特性
【讀者評價】
這本書描述的知識點很豐富,覆蓋很全,里面提到特性較多,有不少我們也沒用過 :) 每個命令內部的機制的介紹很不錯,很多估計也是首次有詳細文檔介紹?!獥钚l(wèi)華(@TimYang)新浪微博技術總監(jiān)
近幾年Redis以其高性能、高靈活性的優(yōu)點,變得越來越流行。但很多人在使用Redis時,僅僅還是停留在比較表層的功能性認識,缺乏對內部機制原理的深入理解。本書是huangz同學長期對Redis源碼的閱讀心得結晶,書中對Redis的各個方面都進行了詳細且深入的講解,將復雜的原理用最簡單的方式為大家解構和講解,強烈推薦給每一位Redis的使用者閱讀。—— iammutex,NoSQLFan站長,樂視網技術經理
Redis 是近些年來特別火爆的 NoSQL 之一??v觀中外各種書籍還沒有一本能對 Redis 內部進行深入剖析,《Redis 設計與實現》可謂開此先河。常和作者在網上交流,知道作者為這本書付出了大量的心血。這本書行文流暢,思路清晰,詳細地介紹了 Redis 源碼的方方面面。無論是想學習 NoSQL、網絡編程的初學者,還是源碼控的進階者,本書都會有很大的幫助?!?阮若夷,支付寶高級專家
【內容簡介】
本書全面而完整地講解了Redis的內部機制與實現方式,對Redis的大多數單機功能以及所有多機功能的實現原理進行了介紹,展示了這些功能的核心數據結構以及關鍵的算法思想,圖示豐富,描述清晰,并給出大量參考信息。通過閱讀本書,讀者可以快速、有效地了解Redis的內部構造以及運作機制,更好、更高效地使用Redis。
本書主要分為四大部分。第一部分“數據結構與對象”介紹了Redis中的各種對象及其數據結構,并說明這些數據結構如何影響對象的功能和性能。第二部分“單機數據庫的實現”對Redis實現單機數據庫的方法進行了介紹,包括數據庫、RDB持久化、AOF持久化、事件等。第三部分“多機數據庫的實現”對Redis的Sentinel、復制、集群三個多機功能進行了介紹。第四部分“獨立功能的實現”對Redis中各個相對獨立的功能模塊進行了介紹,涉及發(fā)布與訂閱、事務、Lua腳本、排序、二進制位數組、慢查詢日志、監(jiān)視器等。
作者簡介:
黃健宏 軟件開發(fā)者,他喜歡函數式編程,熱愛開源軟件。出于對數據庫的強烈興趣,他開始閱讀和分析 Redis 源代碼,并對 Redis 2.6 和 Redis 3.0 的源代碼進行了詳細注釋。
什么是NoSQL
大家有沒有聽說過“NoSQL”呢?近年,這個詞極受關注??吹健癗oSQL”這個詞,大家可能會誤以為是“No!SQL”的縮寫,并深感憤怒:“SQL怎么會沒有必要了呢?”但實際上,它是“Not Only SQL”的縮寫。它的意義是:適用關系型數據庫的時候就使用關系型數據庫,不適用的時候也沒有必要非使用關系型數據庫不可,可以考慮使用更加合適的數據存儲。
為彌補關系型數據庫的不足,各種各樣的NoSQL數據庫應運而生。
為了更好地了解本書所介紹的NoSQL數據庫,對關系型數據庫的理解是必不可少的。那么,就讓我們先來看一看關系型數據庫的歷史、分類和特征吧。
關系型數據庫簡史
1969年,埃德加?6?1弗蘭克?6?1科德(Edgar Frank Codd)發(fā)表了劃時代的論文,首次提出了關系數據模型的概念。但可惜的是,刊登論文的《IBM Research Report》只是IBM公司的內部刊物,因此論文反響平平。1970年,他再次在刊物《Communication of the ACM》上發(fā)表了題為“A Relational Model of Data for Large Shared Data banks”(大型共享數據庫的關系模型)的論文,終于引起了大家的關注。
科德所提出的關系數據模型的概念成為了現今關系型數據庫的基礎。當時的關系型數據庫由于硬件性能低劣、處理速度過慢而遲遲沒有得到實際應用。但之后隨著硬件性能的提升,加之使用簡單、性能優(yōu)越等優(yōu)點,關系型數據庫得到了廣泛的應用。
通用性及高性能
雖然本書是講解NoSQL數據庫的,但有一個重要的大前提,請大家一定不要誤解。這個大前提就是“關系型數據庫的性能絕對不低,它具有非常好的通用性和非常高的性能”。毫無疑問,對于絕大多數的應用來說它都是最有效的解決方案。
突出的優(yōu)勢
關系型數據庫作為應用廣泛的通用型數據庫,它的突出優(yōu)勢主要有以下幾點:
保持數據的一致性(事務處理)
由于以標準化為前提,數據更新的開銷很小(相同的字段基本上都只有一處)
可以進行JOIN等復雜查詢
存在很多實際成果和專業(yè)技術信息(成熟的技術)
這其中,能夠保持數據的一致性是關系型數據庫的最大優(yōu)勢。在需要嚴格保證數據一致性和處理完整性的情況下,用關系型數據庫是肯定沒有錯的。但是有些情況不需要JOIN,對上述關系型數據庫的優(yōu)點也沒有什么特別需要,這時似乎也就沒有必要拘泥于關系型數據庫了。
關系型數據庫的不足
不擅長的處理
就像之前提到的那樣,關系型數據庫的性能非常高。但是它畢竟是一個通用型的數據庫,并不能完全適應所有的用途。具體來說它并不擅長以下處理:
大量數據的寫入處理
為有數據更新的表做索引或表結構(schema)變更
字段不固定時應用
對簡單查詢需要快速返回結果的處理
。。。。。。
NoSQL數據庫
為了彌補關系型數據庫的不足(特別是最近幾年),NoSQL數據庫出現了。關系型數據庫應用廣泛,能進行事務處理和JOIN等復雜處理。相對地,NoSQL數據庫只應用在特定領域,基本上不進行復雜的處理,但它恰恰彌補了之前所列舉的關系型數據庫的不足之處。
易于數據的分散
如前所述,關系型數據庫并不擅長大量數據的寫入處理。原本關系型數據庫就是以JOIN為前提的,就是說,各個數據之間存在關聯是關系型數據庫得名的主要原因。為了進行JOIN處理,關系型數據庫不得不把數據存儲在同一個服務器內,這不利于數據的分散。相反,NoSQL數據庫原本就不支持JOIN處理,各個數據都是獨立設計的,很容易把數據分散到多個服務器上。由于數據被分散到了多個服務器上,減少了每個服務器上的數據量,即使要進行大量數據的寫入操作,處理起來也更加容易。同理,數據的讀入操作當然也同樣容易。
提升性能和增大規(guī)模
下面說一點題外話,如果想要使服務器能夠輕松地處理更大量的數據,那么只有兩個選擇:一是提升性能,二是增大規(guī)模。下面我們來整理一下這兩者的不同。
首先,提升性能指的就是通過提升現行服務器自身的性能來提高處理能力。這是非常簡單的方法,程序方面也不需要進行變更,但需要一些費用。若要購買性能翻倍的服務器,需要花費的資金往往不只是原來的2倍,可能需要多達5到10倍。這種方法雖然簡單,但是成本較高。
另一方面,增大規(guī)模指的是使用多臺廉價的服務器來提高處理能力。它需要對程序進行變更,但由于使用廉價的服務器,可以控制成本。另外,以后只要依葫蘆畫瓢增加廉價服務器的數量就可以了。
不對大量數據進行處理的話就沒有使用的必要嗎?
NoSQL數據庫基本上來說為了“使大量數據的寫入處理更加容易(讓增加服務器數量更容易)”而設計的。但如果不是對大量數據進行操作的話,NoSQL數據庫的應用就沒有意義嗎?
答案是否定的。的確,它在處理大量數據方面很有優(yōu)勢。但實際上NoSQL數據庫還有各種各樣的特點,如果能夠恰當地利用這些特點將會是非常有幫助。具體的例子將會在第2章和第3章進行介紹,這些用途將會讓你感受到利用NoSQL的好處。
希望順暢地對數據進行緩存(Cache)處理
希望對數組類型的數據進行高速處理
希望進行全部保存
多樣的NoSQL數據庫
NoSQL數據庫存在著“key-value存儲”、“文檔型數據庫”、“列存儲數據庫”等各種各樣的種類,每種數據庫又包含各自的特點。下一節(jié)讓我們一起來了解一下NoSQL數據庫的種類和特點。
NoSQL數據庫是什么
NoSQL說起來簡單,但實際上到底有多少種呢?我在提筆的時候,到NoSQL的官方網站上確認了一下,竟然已經有122種了。另外官方網站上也介紹了本書沒有涉及到的圖形數據庫和對象數據庫等各個類別。不知不覺間,原來已經出現了這么多的NoSQL數據庫啊。
本節(jié)將為大家介紹具有代表性的NoSQL數據庫。
key-value存儲
這是最常見的NoSQL數據庫,它的數據是以key-value的形式存儲的。雖然它的處理速度非常快,但是基本上只能通過key的完全一致查詢獲取數據。根據數據的保存方式可以分為臨時性、永久性和兩者兼具三種。
臨時性
memcached屬于這種類型。所謂臨時性就是 “數據有可能丟失”的意思。memcached把所有數據都保存在內存中,這樣保存和讀取的速度非???,但是當memcached停止的時候,數據就不存在了。由于數據保存在內存中,所以無法操作超出內存容量的數據(舊數據會丟失)。
在內存中保存數據
可以進行非??焖俚谋4婧妥x取處理
數據有可能丟失
永久性
Tokyo Tyrant、Flare、ROMA等屬于這種類型。和臨時性相反,所謂永久性就是“數據不會丟失”的意思。這里的key-value存儲不像memcached那樣在內存中保存數據,而是把數據保存在硬盤上。與memcached在內存中處理數據比起來,由于必然要發(fā)生對硬盤的IO操作,所以性能上還是有差距的。但數據不會丟失是它最大的優(yōu)勢。
在硬盤上保存數據
可以進行非??焖俚谋4婧妥x取處理(但無法與memcached相比)
數據不會丟失
兩者兼具
Redis屬于這種類型。Redis有些特殊,臨時性和永久性兼具,且集合了臨時性key-value存儲和永久性key-value存儲的優(yōu)點。Redis首先把數據保存到內存中,在滿足特定條件(默認是15分鐘一次以上,5分鐘內10個以上,1分鐘內10000個以上的key發(fā)生變更)的時候將數據寫入到硬盤中。這樣既確保了內存中數據的處理速度,又可以通過寫入硬盤來保證數據的永久性。這種類型的數據庫特別適合于處理數組類型的數據。
同時在內存和硬盤上保存數據
可以進行非??焖俚谋4婧妥x取處理
保存在硬盤上的數據不會消失(可以恢復)
適合于處理數組類型的數據
面向文檔的數據庫
MongoDB、CouchDB屬于這種類型。它們屬于NoSQL數據庫,但與key-value存儲相異。
不定義表結構
面向文檔的數據庫具有以下特征:即使不定義表結構,也可以像定義了表結構一樣使用。關系型數據庫在變更表結構時比較費事,而且為了保持一致性還需修改程序。然而NoSQL數據庫則可省去這些麻煩(通常程序都是正確的),確實是方便快捷。
可以使用復雜的查詢條件
跟key-value存儲不同的是,面向文檔的數據庫可以通過復雜的查詢條件來獲取數據。雖然不具備事務處理和JOIN這些關系型數據庫所具有的處理能力,但除此以外的其他處理基本上都能實現。這是非常容易使用的NoSQL數據庫。
不需要定義表結構
可以利用復雜的查詢條件
面向列的數據庫
Cassandra、Hbase、HyperTable屬于這種類型。由于近年來數據量出現爆發(fā)性增長,這種類型的NoSQL數據庫尤其引人注目。
面向行的數據庫和面向列的數據庫
普通的關系型數據庫都是以行為單位來存儲數據的,擅長進行以行為單位的讀入處理,比如特定條件數據的獲取。因此,關系型數據庫也被稱為面向行的數據庫。相反,面向列的數據庫是以列為單位來存儲數據的,擅長以列為單位讀入數據。
高擴展性
面向列的數據庫具有高擴展性,即使數據增加也不會降低相應的處理速度(特別是寫入速度),所以它主要應用于需要處理大量數據的情況。另外,利用面向列的數據庫的優(yōu)勢,把它作為批處理程序的存儲器來對大量數據進行更新也是非常有用的。但由于面向列的數據庫跟現行數據庫存儲的思維方式有很大不同,應用起來十分困難。
高擴展性(特別是寫入處理)
應用十分困難
最近,像Twitter和Facebook這樣需要對大量數據進行更新和查詢的網絡服務不斷增加,面向列的數據庫的優(yōu)勢對其中一些服務是非常有用的,但是由于這與本書所要介紹的內容關系不大,就不進行詳細介紹了。
總結:
NoSQL并不是No-SQL,而是指Not Only SQL。
NoSQL的出現是為了彌補SQL數據庫因為事務等機制帶來的對海量數據、高并發(fā)請求的處理的性能上的欠缺。
NoSQL不是為了替代SQL而出現的,它是一種替補方案,而不是解決方案的首選。
絕大多數的NoSQL產品都是基于大內存和高性能隨機讀寫的(比如具有更高性能的固態(tài)硬盤陣列),一般的小型企業(yè)在選擇NoSQL時一定要慎重!不要為了NoSQL而NoSQL,可能會導致花了冤枉錢又耽擱了項目進程。
NoSQL不是萬能的,但在大型項目中,你往往需要它!
百度百科:
NoSQL與關系型數據庫設計理念比較
關系型數據庫中的表都是存儲一些格式化的數據結構,每個元組字段的組成都一樣,即使不是每個元組都需要所有的字段,但數據庫會為每個元組分配所有的字段,這樣的結構可以便于表與表之間進行連接等操作,但從另一個角度來說它也是關系型數據庫性能瓶頸的一個因素。而非關系型數據庫以鍵值對存儲,它的結構不固定,每一個元組可以有不一樣的字段,每個元組可以根據需要增加一些自己的鍵值對,這樣就不會局限于固定的結構,可以減少一些時間和空間的開銷。
特點:
它們可以處理超大量的數據。
它們運行在便宜的PC服務器集群上。
它們擊碎了性能瓶頸。
沒有過多的操作。
Bootstrap支持
缺點:
但是一些人承認,沒有正式的官方支持,萬一出了差錯會是可怕的,至少很多管理人員是這樣看。
此外,nosql并未形成一定標準,各種產品層出不窮,內部混亂,各種項目還需時間來檢驗
《深入NoSQL》(Shashank Tiwari)電子書網盤下載免費在線閱讀
鏈接:
提取碼: 7n4x
書名:深入NoSQL
作者:Shashank Tiwari
譯者:巨成
豆瓣評分:6.1
出版社:人民郵電出版社
出版年份:2012-11
頁數:294
內容簡介:
《深入NoSQL》是一本全面的NoSQL實踐指南。書中主要關注NoSQL的基本概念,以及使用NoSQL數據庫的切實可行的解決方案。書中介紹了基于MapReduce的可伸縮處理,演示Hadoop用例,還有Hive和Pig這樣的高層抽象。包含許多用例演示,同時也會討論Google、Amazon、Facebook、Twitter和LinkedIn的可伸縮數據架構。
作者簡介:
Shashank Tiwari
創(chuàng)業(yè)者、開發(fā)者、技術作家、演講者和導師,技術型創(chuàng)業(yè)公司Treasury of Ideas()的創(chuàng)始人。
他是一位經驗豐富的軟件開發(fā)者和企業(yè)家,長期關注高性能應用、分析、Web應用以及移動平臺,對數據可視化和統(tǒng)計機器學習有著濃厚的興趣,喜歡喝咖啡、吃甜點、騎自行車。他撰寫了許多技術文章和著作,并且應邀在全球各地的技術會議上進行演講。