-
1 # KOALA
-
2 # java架構設計
記憶體資料庫是相對於磁碟資料庫來說的。我們都知道我們經常使用的關係型資料庫,比如MySQL,它的資料檔案最終是儲存到磁碟上的。而記憶體資料庫則是將所有的資料儲存在記憶體中,磁碟和記憶體在訪問速率上不是一個量級的,完全沒有可比性。
隨著記憶體容量不斷加大、價格不斷下降,網際網路的流量越來越大的情況下,記憶體資料庫逐步被廣泛應用起來。
應用場景快取資料:將高頻訪問的資料透過一定的機制載入到記憶體中,減少應用與資料庫的連線,極大的提高了應用的效能;
記憶體計算:如果你的資料在記憶體中,那麼你可以充分利用CPU的資源去做資料的計算、聚合、查詢,而不用擔心資料庫是否能承受你的SQL查詢。
主流的記憶體資料庫關係型記憶體資料庫:H2、Apache Ignite、SQLite
H2:支援嵌入式,伺服器和叢集模式,支援記憶體資料庫,純Java開發Apache Ignite:高效能、整合化、分散式的記憶體平臺,他可以實時地在大資料集中執行事務和計算,可以像操作資料庫一樣,操作記憶體快取SQLite:小而精美,iOS和Android開發本地資料庫的不二之選Key-Value記憶體資料庫:redis、Memcached
redis:支援String、Set、Hash、Sorted Set、ListMemcached:是一個簡潔的、高效能的、分散式的記憶體物件快取系統傳統資料庫的記憶體資料庫引擎:
MySQL Memory EngineSQL Server 2016 In-Memory OLTP傳統資料庫提供的記憶體資料庫,將磁碟資料載入到記憶體中,利用查詢引擎操作記憶體資料總結以上是個人整理的一些記憶體資料庫,都是我們平常業務開發時候多少都有用到的記憶體資料庫。瞭解每一種記憶體資料庫的特性,結合它們的優缺點並應用於不同的業務場景,才是正確的編碼之道。
記憶體資料庫不是銀彈,他也不能代替傳統資料庫,只有記憶體資料庫與傳統資料庫(磁碟資料庫)強強聯手、互相補充才能發揮出資料儲存技術的強大威力! -
3 # 芝麻技術棧
關係型 Mongodb、Hana、H2;
MongoDB 是一個基於分散式檔案儲存的資料庫,介於關係型和非關係型之間,資料以文件的形式存在,文件以BSON格式存放。
Hana是德國SAP公司的產品,非開源、價格比較昂貴並且對伺服器硬體配置要求比較高,國內用的比較少。
H2開源產品,優點小而快、查詢語法簡單,嵌入式和單獨部署皆可。
KV型 Redis、Memcache、 Ignite、Guavacache;
Redis常被用做分散式快取元件,支援的資料結構比較豐富,叢集架構部署效能更強悍。
Memcache僅僅是作為第三方快取元件使用,不能稱之為資料庫,支援的資料結構單一,支援叢集部署。
Apache Ignite從名字就能看的出來,Apache的開源分散式產品,支援內嵌也支援單獨部署,功能挺強大,有興趣的可以看下官網,JVM堆外記憶體。
Guavacache僅僅是作為專案內部快取使用,不能稱之為資料庫,內嵌式,佔用JVM堆記憶體。
以上就是伺服器端常用的記憶體資料庫,大多數對持久化都支援的挺好;但是一般關係型的用來儲存資料並且持久化,KV型的用來做快取,兩者搭配來用。
回覆列表
1,SQLITE是一個小型的C程式庫,實現了獨立的,可嵌入的,零配置的SQL資料庫引擎。
2,ORACLE記憶體資料庫系列BERKELEY DB和TIMES TEN,前者只支援嵌入式記憶體資料,後者是獨立的記憶體最佳化資料庫。
3,EXTREMEDB記憶體式實時資料庫是為實時系統及嵌入式系統而特別設計的資料庫。
4,H2 DATABASE 是THOMAS MUELLER提供的一個開源的,純JAVA實現的關係資料庫。