### 1?簡介
將內存作為首要存儲介質不是什么新鮮事兒,我們身邊有很多主存數據庫(IMDB或MMDB)的例子。在對主存的使用上,內存數據網格(In Memory Data Grid,IMDG)與IMDB類似,但二者在架構上完全不同。IMDG特性可以總結為以下幾點:
???數據是分布式存儲在多臺服務器上的。
???每臺服務器都是active模式。
???數據模型通常是面向對象和非關系型的。
???根據需要,經常會增減服務器。
此外,IMDG與普通緩存系統也是不同的。同樣地,在主存使用以及水平擴展上緩存系統與IMDG類似。但是,兩者的使用方法和目的是完全不同的。緩存系統只是緩沖讀壓力,像RDBMS這種持久化存儲是必備的。例如下圖中的Arcus緩存系統。而IMDG的架構請參考第二部分。

換言之,**IMDG將對象本身存儲在內存中,并保證可擴展性**。常見的商業以及開源產品如下:
???Hazelcast
???Terracotta Enterprise Suite
???VMware?Gemfire
???Oracle Coherence
???Gigaspaces?XAP Elastic Caching Edition
???IBM?eXtreme?Scale
???JBoss?Infinispan
### 2?架構
IMDG亟需克服的兩個核心問題是:容量限制和可靠性。通常,IMDG通過水平擴展來克服內存容量上的限制,而通過復制系統來保證可靠性。典型的IMDG架構如下圖所示。

因此,前面介紹過的緩存系統與IMDG的區別很明顯。

### 3?特性
除了提供各種數據結構的分布式實現外,IMDG一般會使用堆外內存(off-heap,或叫彈性內存)來降低垃圾回收的壓力。

### 參考資料
1?[Introduction to In-Memory Data Grid: Main Features](http://www.cubrid.org/blog/dev-platform/introduction-to-in-memory-data-grid-main-features/)