① redis等內存資料庫可否代替共享內存作為進
mongodb和memcached不是一個范疇內的東西。mongodb是文檔型的非關系型資料庫,其優勢在於查詢功能比較強大,能存儲海量數據。mongodb和memcached不存在誰替換誰的問題。 和memcached更為接近的是redis。它們都是內存型資料庫,數據保存在內存中,通過tcp直接存取,優勢是速度快,並發高,缺點是數據類型有限,查詢功能不強,一般用作緩存。在我們團隊的項目中,一開始用的是memcached,後來用redis替代。 相比memcached: 1、redis具有持久化機制,可以定期將內存中的數據持久化到硬碟上。 2、redis具備binlog功能,可以將所有操作寫入日誌,當redis出現故障,可依照binlog進行數據恢復。 3、redis支持virtual memory,可以限定內存使用大小,當數據超過閾值,則通過類似LRU的演算法把內存中的最不常用數據保存到硬碟的頁面文件中。 4、redis原生支持的數據類型更多,使用的想像空間更大。 5、前面有位朋友所提及的一致性哈希,用在redis的sharding中,一般是在負載非常高需要水平擴展時使用。我們還沒有用到這方面的功能,一般的項目,單機足夠支撐並發了。redis 3.0將推出cluster,功能更加強大。 6、redis更多優點,請移步官方網站查詢。
② 在windows下用哪些內存資料庫,類似redis的
內存資料庫從范型上可以分為關系型內存資料庫和鍵值型內存資料庫。在實際應用中內存資料庫主要是配合oracle或mysql等大型關系資料庫使用,關注性能。
作用類似於緩存,並不注重數據完整性和數據一致性。
基於鍵值型的內存資料庫比關系型更加易於使用,性能和可擴展性更好,因此在應用上比關系型的內存資料庫使用更多。
比較FastDB、Memcached和Redis主流內存資料庫的功能特性。
FastDB的特點包括如下方面:
1、FastDB不支持client-server架構因而所有使用FastDB的應用程序必須運行在同一主機上;
2、fastdb假定整個資料庫存在於RAM中,並且依據這個假定優化了查詢演算法和介面。
3、fastdb沒有資料庫緩沖管理開銷,不需要在資料庫文件和緩沖池之間傳輸數據。
4、整個fastdb的搜索演算法和結構是建立在假定所有的數據都存在於內存中的,因此數據換出的效率不會很高。
5、Fastdb支持事務、在線備份以及系統崩潰後的自動恢復。
6、fastdb是一個面向應用的資料庫,資料庫表通過應用程序的類信息來構造。
FastDB不能支持Java API介面,這使得在本應用下不適合使用FastDB。
Memcached
Memcached是一種基於Key-Value開源緩存伺服器系統,主要用做資料庫的數據高速緩沖,並不能完全稱為資料庫。
memcached的API使用三十二位元的循環冗餘校驗(CRC-32)計算鍵值後,將資料分散在不同的機器上。當表格滿了以後,接下來新增的資料會以LRU機制替換掉。由於 memcached通常只是當作緩存系統使用,所以使用memcached的應用程式在寫回較慢的系統時(像是後端的資料庫)需要額外的程序更新memcached內的資料。
memcached具有多種語言的客戶端開發包,包括:Perl、PHP、JAVA、C、Python、Ruby、C#。
Redis
Redis是一個高性能的key-value資料庫。redis的出現,很大程度補償了memcached這類keyvalue存儲的不足,在部分場合可以對關系資料庫起到很好的補充作用。它提供了C++、Java、Python,Ruby,Erlang,PHP客戶端。
③ 如何根據性能選擇內存NoSQL資料庫
本文主要內容是測試了不同NoSQL資料庫在測試工具YCSB中的表現。我們選取了3款流行的內存(in-memory)資料庫管理系統:Redis,Tarantool 以及 CouchBase,還有緩存系統Memchached。Memchached雖然不屬於資料庫管理系統但常作為快速存儲系統使用。
測試環境由4台在Microsoft Azure Cloud中的虛擬機組成的計算機組組成。這些虛擬機同屬於一個數據中心。nosql-1和nosql-2用作測試Tarantool和CouchBase,nosql-3和nosql-4用作測試Redis,Azure Redis Cache 以及 Memcached。這些機器都安裝和配置了相應資料庫和測試項目。虛擬機的配置為4核A3 CPU,7GB RAM,120GB硬碟。
資料庫及設置
內存資料庫管理系統會存儲所有在主內存中的數據並在磁碟上進行持續更新操作;透過日誌記錄每個數據的修改以確保連貫性。由於是以append-only方式進行日誌寫入,因此它很少遇到瓶頸問題;讀取/寫入都不會造成頻繁的磁碟頭移動。
Redis在2009推出,目前的最新版本是3.0.5。我們這里使用的版本是3.0.4,以append-only(只附加)方式進行數據管理,與其配合使用的是Microsoft Azure Redis Cache工具。
Tarantool是一款開源NoSQL資料庫管理系統。我們使用的是Tarantool 1.6.7-126-gb35aff9,日誌採用write-ahead(先寫)模式。Memcached是一款分布式內存緩存系統,這里使用是Memcached 1.4.14-0ubuntu9。
Couchbase Server是開源分布式NoSQL面向文檔資料庫,這里使用的版本是Couchbase 4.0.0-4047-1。
YCSB測試工具
Yahoo! Cloud Serving Benchmark(YCSB)是功能強大的NoSQL資料庫性能測試工具,它提供了6種主要的負載工作類型,以字母A到F來區分。
負載A負責更新操作,極值是50/50的讀寫操作,如用於進行新近操作記錄。負載B負責讀取操作,極值是95/5的讀寫操作,如用於進行圖片標簽管理,多進行標簽讀取操作。負載C負載100%的讀取操作,如用於進行用戶屬性獲取。負載D以先進先出方式進行插入操作,如用戶進行最新數據讀取。負載E負責小范圍記錄讀取而不是單個記錄讀取,如線程會話。負載F負責記錄的讀取,修改和寫入,如用戶信息管理。
我們對配置文件作了兩處參數修改:數據條目recordcount設為200000,操作條目operationcount設為5000000。YCSB是多線程工具,我們將以8, 16, 32, 64, 128 及256 線程來進行測試。詳細的測試腳本請點擊這里進行下載。
下列測試結果圖以顏色進行測試對象區分,
Tarantool (HASH) (藍)
Tarantool (TREE)(淺藍)
Redis (紅)
Azure Redis Cache (橙)
Memcached (綠)
CouchBase(黑)
更多圖片請點擊[這里]查看。
結論
Tarantool在所有負載類型測試中皆取得了最優成績。它創建了一個無鎖內存引擎,以協同多任務方式進行操作而不是互斥或並行處理方式。根據以下性能圖表現,我們的結論是Tarantool的高吞吐量處理是其最大優勢之一。因此在多數場合下,Tarantool是用戶的最佳選擇。
④ 內存資料庫主要功能有哪些
內存資料庫從范型上可以分為關系型內存資料庫和鍵值型內存資料庫。 在實際應用中內存資料庫主要是配合oracle或mysql等大型關系資料庫使用,關注性能。 作用類似於緩存,並不注重數據完整性和數據一致性。 基於鍵值型的內存資料庫比關系型更加易...
⑤ 開源的內存資料庫有哪些支持SQL基準
選擇資料庫實例—右鍵屬性—選擇【內存】選擇頁—修改內存—確定
⑥ 什麼樣的內存資料庫是好的內存資料庫
查詢速度快,支持結構豐富,比如redis、數蠶內存資料庫
支持SQL,數據類型豐富,比如MySQL memory存儲引擎,數蠶內存資料庫,SQL Server 內存存儲,SAP HANA。
⑦ 內存rtl iol是什麼
是內存資料庫。
內存資料庫就是一個將所有數據存儲在RAM中的資料庫。它的大小受節點RAM容量的限制。雖然內存容量限制了數據的總量,但是系統處理速度卻大幅度提高。內存資料庫可以永久地存儲到磁碟上。系統節點可以在不丟失信息的情況下重新啟動。如今,內存資料庫早已用作生產中的主存儲。例如,俄羅斯的Mail.ruCloudSolutions使用Tarantool作為主資料庫,將元數據存儲在其S3兼容的對象存儲庫中。內存資料庫還用於高速數據訪問,它每秒能夠處理10,000個請求。
⑧ 請問資料庫有哪些種類呢
資料庫共有3種類型,為關系資料庫、非關系型資料庫和鍵值資料庫。
1、關系資料庫
MySQL、MariaDB(MySQL的代替品,英文維基網路從MySQL轉向MariaDB)、Percona Server(MySQL的代替品·)、PostgreSQL、Microsoft Access、Microsoft SQL Server、Google Fusion Tables、FileMaker、Oracle資料庫、Sybase、dBASE、Clipper、FoxPro、foshub。
幾乎所有的資料庫管理系統都配備了一個開放式資料庫連接(ODBC)驅動程序,令各個資料庫之間得以互相集成。
2、非關系型資料庫(NoSQL)
BigTable(Google)、Cassandra、MongoDB、CouchDB。
3、鍵值(key-value)資料庫
Apache Cassandra(為Facebook所使用):高度可擴展、Dynamo、LevelDB(Google)。
(8)內存資料庫有哪些擴展閱讀:
資料庫模型:對象模型、層次模型(輕量級數據訪問協議)、網狀模型(大型數據儲存)、關系模型、面向對象模型、半結構化模型、平面模型(表格模型,一般在形式上是一個二維數組。如表格模型數據Excel)。
資料庫的架構可以大致區分為三個概括層次:內層、概念層和外層。
⑨ 內存資料庫主流的有哪些,並給出各自特點!
內存資料庫從范型上可以分為關系型內存資料庫和鍵值型內存資料庫。
在實際應用中內存資料庫主要是配合oracle或mysql等大型關系資料庫使用,關注性能。
作用類似於緩存,並不注重數據完整性和數據一致性。
基於鍵值型的內存資料庫比關系型更加易於使用,性能和可擴展性更好,因此在應用上比關系型的內存資料庫使用更多。
比較FastDB、Memcached和Redis主流內存資料庫的功能特性。
FastDB的特點包括如下方面:
1、FastDB不支持client-server架構因而所有使用FastDB的應用程序必須運行在同一主機上;
2、fastdb假定整個資料庫存在於RAM中,並且依據這個假定優化了查詢演算法和介面。
3、fastdb沒有資料庫緩沖管理開銷,不需要在資料庫文件和緩沖池之間傳輸數據。
4、整個fastdb的搜索演算法和結構是建立在假定所有的數據都存在於內存中的,因此數據換出的效率不會很高。
5、Fastdb支持事務、在線備份以及系統崩潰後的自動恢復。
6、fastdb是一個面向應用的資料庫,資料庫表通過應用程序的類信息來構造。
FastDB不能支持Java API介面,這使得在本應用下不適合使用FastDB。
Memcached
Memcached是一種基於Key-Value開源緩存伺服器系統,主要用做資料庫的數據高速緩沖,並不能完全稱為資料庫。
memcached的API使用三十二位元的循環冗餘校驗(CRC-32)計算鍵值後,將資料分散在不同的機器上。當表格滿了以後,接下來新增的資料會以LRU機制替換掉。由於 memcached通常只是當作緩存系統使用,所以使用memcached的應用程式在寫回較慢的系統時(像是後端的資料庫)需要額外的程序更新memcached內的資料。
memcached具有多種語言的客戶端開發包,包括:Perl、PHP、JAVA、C、Python、Ruby、C#。
Redis
Redis是一個高性能的key-value資料庫。redis的出現,很大程度補償了memcached這類keyvalue存儲的不足,在部分場合可以對關系資料庫起到很好的補充作用。它提供了C++、Java、Python,Ruby,Erlang,PHP客戶端。