ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 1 简介 将内存作为首要存储介质不是什么新鲜事儿,我们身边有很多主存数据库(IMDB或MMDB)的例子。在对主存的使用上,内存数据网格(In Memory Data Grid,IMDG)与IMDB类似,但二者在架构上完全不同。IMDG特性可以总结为以下几点: Ø  数据是分布式存储在多台服务器上的。 Ø  每台服务器都是active模式。 Ø  数据模型通常是面向对象和非关系型的。 Ø  根据需要,经常会增减服务器。 此外,IMDG与普通缓存系统也是不同的。同样地,在主存使用以及水平扩展上缓存系统与IMDG类似。但是,两者的使用方法和目的是完全不同的。缓存系统只是缓冲读压力,像RDBMS这种持久化存储是必备的。例如下图中的Arcus缓存系统。而IMDG的架构请参考第二部分。 ![](https://box.kancloud.cn/2016-08-31_57c6b1396367e.jpg) 换言之,**IMDG将对象本身存储在内存中,并保证可扩展性**。常见的商业以及开源产品如下: Ø  Hazelcast Ø  Terracotta Enterprise Suite Ø  VMware Gemfire Ø  Oracle Coherence Ø  Gigaspaces XAP Elastic Caching Edition Ø  IBM eXtreme Scale Ø  JBoss Infinispan ### 2 架构 IMDG亟需克服的两个核心问题是:容量限制和可靠性。通常,IMDG通过水平扩展来克服内存容量上的限制,而通过复制系统来保证可靠性。典型的IMDG架构如下图所示。 ![](https://box.kancloud.cn/2016-08-31_57c6b139750fb.jpg) 因此,前面介绍过的缓存系统与IMDG的区别很明显。 ![](https://box.kancloud.cn/2016-08-31_57c6b13989d2c.jpg) ### 3 特性 除了提供各种数据结构的分布式实现外,IMDG一般会使用堆外内存(off-heap,或叫弹性内存)来降低垃圾回收的压力。 ![](https://box.kancloud.cn/2016-08-31_57c6b1399df57.jpg) ### 参考资料 1 [Introduction to In-Memory Data Grid: Main Features](http://www.cubrid.org/blog/dev-platform/introduction-to-in-memory-data-grid-main-features/)