NoSQL,泛指非關系型的資料庫。隨著互聯網web2.0網站的興起,傳統的關系資料庫在處理web2.0網站,特別是超大規模和高並發的SNS類型的web2.0純動態網站已經顯得力不從心,出現了很多難以克服的問題,而非關系型的資料庫則由於其本身的特點得到了非常迅速的發展。
常見的Nosql資料庫有:
一、Redis資料庫
Redis(RemoteDictionaryServer),即遠程字典服務,是一個開源的使用ANSIC語言編寫、支持網路、可基於內存亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。從2010年3月15日起,Redis的開發工作由VMware主持。從2013年5月開始,Redis的開發由Pivotal贊助。
二、MongoDB資料庫
MongoDB是一個介於關系資料庫和非關系資料庫之間的產品,是非關系資料庫當中功能最豐富,最像關系資料庫的。它支持的數據結構非常鬆散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。
Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾乎可以實現類似關系資料庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
(1)nosql內存資料庫擴展閱讀:
對於NoSQL並沒有一個明確的范圍和定義,但是他們都普遍存在下面一些共同特徵:
一、易擴展
NoSQL資料庫種類繁多,但是一個共同的特點都是去掉關系資料庫的關系型特性。數據之間無關系,這樣就非常容易擴展。無形之間,在架構的層面上帶來了可擴展的能力。
二、大數據量,高性能
NoSQL資料庫都具有非常高的讀寫性能,尤其在大數據量下,同樣表現優秀。這得益於它的無關系性,資料庫的結構簡單。一般MySQL使用Query Cache。NoSQL的Cache是記錄級的,是一種細粒度的Cache,所以NoSQL在這個層面上來說性能就要高很多。
三、靈活的數據模型
NoSQL無須事先為要存儲的數據建立欄位,隨時可以存儲自定義的數據格式。而在關系資料庫里,增刪欄位是一件非常麻煩的事情。如果是非常大數據量的表,增加欄位簡直就是——個噩夢。這點在大數據量的Web2.0時代尤其明顯。
四、高可用
NoSQL在不太影響性能的情況,就可以方便地實現高可用的架構。比如Cassandra、HBase模型,通過復制模型也能實現高可用。
2. 內存資料庫主流的有哪些,並給出各自特點
內存資料庫有現成的redis,高效存取鍵值對,鍵設為你的查詢條件,值設為你的查詢結果轉為字元串
查詢時先從redis取,沒有再查資料庫,並且設置redis的過期時間,這種方式需粗攜要項目對實時性要求不高,這樣你才能用緩存,而且如果你的項目沒有明顯的熱點,即沒有某些內容確定會多次被查到,那你緩存就不會命中,添加緩存反而影響你得速度
redis是一種nosql的內存資料庫,感興趣你可以了解一下,優點就是性能強勁
數據查詢請求多就把結果緩存下來,你查數岩槐伏據庫再快也沒有直接把結果從內存讀出來快
同樣的sql請求只有第一次查資料庫,之後通通讀內存
或者你干明模脆藉助這種思想,創建一個全局的map對象,然後查詢條件作key
結果作value,就省去了了解redis的過程,把整個資料庫裝內存不太科學,你有多少條數據啊
3. 在我們學習的資料庫中以下哪個不是內存資料庫
在我們學習的NoSQL資料庫中,以下哪個是內存資料庫?( )
A.HBaseB.RedisC.MongoDBD.Bigtable
答案
B
內存資料庫,顧名思義就是將數據放在內存中直接操作的資料庫。相對於磁碟,內存的數據讀寫速度要高出幾個數量級,將數據保存在內存中相比從磁碟上訪問能夠極大地提高應用的性能。
中文名
內存資料庫
外文名
main memory database
定義
將數據放在內存直接操作的資料庫
下設
資料庫系統DBS
最大特點
「主拷貝」常駐內存
資料庫簡介關鍵技術數據載入數據同步技術特點存儲問題分類TA說
資料庫簡介
內存資料庫拋棄了磁碟數據管理的傳統方式,基於全部數據都在內存中重新設計了體系結構,並且汪早在數據緩存、快速演算法、並行操作方面也進行了相應的改進,所以數據處理速度比傳統資料庫的數據處理速度要快很多,一攜森般都在10倍以上。內存資料庫的最大特點是其「主拷貝」或「工作版本」常駐內存,即活動事務只與實時內存資料庫的內存拷貝打交道。
定義:設有資料庫系統DBS,DB為DBS中的資料庫,DBM(t)為在時刻t,DB在內存辯陵畝的數據集,DBM(t)屬於DB。TS為DBS中所有可能的事務構成的集合。AT(t)為在時刻t處於活動狀態的事務集,AT(t)屬於TS。Dt(T)為事務T在時刻t所操作的數據集,
Dt(T)屬於DB。若在任意時刻t,均有:
任意T屬於AT(t) Dt(T)屬於DBM(t)
成立,則稱DBS為一個內存資料庫系統,簡稱為MMDBS;DB為一個內存資料庫,簡稱為MMDB。
常見的例子有MySQL的MEMORY存儲引擎、eXtremeDB、TT、FastDB、SQLite、Microsoft SQL Server Compact等
4. redis是什麼類型的nosql資料庫
內存資料庫,也叫緩存,可以存儲訪問頻次很高的數據
redis是一個nosql(not only sql不僅僅只有sql)資料庫,翻譯成中文叫做非關系型型資料庫
5. 什麼是nosql資料庫nosql和rdbms有什麼區別
什麼是NoSQL資料庫?從名稱「非SQL」或「非關系型」衍生而來,這些資料庫不使用類似SQL的查詢語言,通常稱為結構化存儲。這些資料庫自1960年就已經存在,但是直到現在一些大公司(例如Google和Facebook)開始使用它們時,這些資料庫才流行起來。該資料庫最明顯的優勢是擺脫了一組固定的列、連接和類似SQL的查詢語言的限制。有時,NoSQL這個名稱也可能表示「不僅僅SQL」,來確保它們可能支持SQL。 NoSQL資料庫使用諸如鍵值、寬列、圖形或文檔之類的數據結構,並且可以如JSON之類的不同格式存儲。
6. nosql是什麼意思
NoSQL,指的是非關系型的資料庫。
NoSQL(NoSQL = Not Only SQL ),意即"不僅僅是SQL"。
在現代的計算系統上每天網路上都會產生龐大的數據量。
這些數據有很大一部分是由關系資料庫管理系統(RDBMS)來處理。 1970年 E.F.Codd's提出的關系模型的論文 "A relational model of data for large shared data banks",這使得數據建模和應用程序編程更加簡單。
通過應用實踐證明,關系模型是非常適合於客戶伺服器編程,遠遠超出預期的利益,今天它是結構化數據存儲在網路和商務應用的主導技術。
NoSQL 是一項全新的資料庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲。NoSQL的擁護者們提倡運用非關系型的數據存儲,相對於鋪天蓋地的關系型資料庫運用,這一概念無疑是一種全新的思維的注入。
分布式系統
分布式系統(distributed system)由多台計算機和通信的軟體組件通過計算機網路連接(本地網路或廣域網)組成。
分布式系統是建立在網路之上的軟體系統。正是因為軟體的特性,所以分布式系統具有高度的內聚性和透明性。
因此,網路和分布式系統之間的區別更多的在於高層軟體(特別是操作系統),而不是硬體。
分布式系統可以應用在不同的平台上如:Pc、工作站、區域網和廣域網上等。
7. 什麼是NoSQL資料庫
1 理解ACID與BASE的區別(ACID是關系型資料庫強一致性的四個要求,而BASE是NoSQL資料庫通常對可用性及一致性的弱要求原則,它們的意思分別是,ACID:atomicity, consistency, isolation, rability;BASE:Basically Available, Soft-state, Eventually Consistent。同時有意思的是ACID在英語里意為酸,BASE意思為鹼)
2 理解持久化與非持久化的區別。這么說是因為有的NoSQL系統是純內存存儲的。
3 你必須意識到傳統有關系型資料庫與NoSQL系統在數據結構上的本質區別。傳統關系型資料庫通常是基於行的表格型存儲,而NoSQL系統包括了列式存儲(Cassandra)、key/value存儲(Memcached)、文檔型存儲(CouchDB)以及圖結構存儲(Neo4j)
4與傳統關系資料庫有統一的SQL語言操作介面不同,NoSQL系統通常有自己特有的API介面。
5 在架構上,你必須搞清楚,NoSQL系統是被設計用於成百上千台機器的集群中的,而非共享型資料庫系統的架構。
6在NoSQL系統中,可能你得習慣一下不知道你的數據具體存在何處的情況。
7 在NoSQL系統中,你最好習慣它的弱一致性。」eventually consistent」(最終一致性)正是BASE原則中的重要一項。比如在Twitter,你在Followers列表中經常會感受到數據的延遲。
8 在NoSQL系統中,你要理解,很多時候數據並不總是可用的。
9 你得理解,有的方案是擁有分區容忍性的,有的方案不一定有。
8. NoSQL是什麼意思
什麼是NoSQL資料庫?從名稱「非SQL」或「非關系型」衍生而來,這些資料庫不使用類似SQL的查詢語言,通常稱為結構化存儲。這些資料庫自1960年就已經存在,但是直到現在一些大公司(例如Google和Facebook)開始使用它們時,這些資料庫才流行起來。該資料庫最明顯的優勢是擺脫了一組固定的列、連接和類似SQL的查詢語言的限制。有時,NoSQL這個名稱也可能表示「不僅僅SQL」,來確保它們可能支持SQL。 NoSQL資料庫使用諸如鍵值、寬列、圖形或文檔之類的數據結構,並且可以如JSON之類的不同格式存儲。