1. 分类

1.1. 键值对内存数据库

键值对(KV, Key-Value)内存数据库指的是一种以键值对为主要存储结构的内存数据库。键值对内存数据库通常按键进行数据存取操作,值通常支持各种数据类型,使用键值存储的数据模型相对简单,更适合要求性能高、计算简单的一些场景。键值对内存数据库的典型代表为 Redis、Memcached 和 Aerospike。

1.2. 关系型内存数据库

关系型内存数据库是一种基于数据关系模型的内存数据库。关系型内存数据库将传统的关系型数据库表搬到内存中,支持通过 SQL语句的方式实现对内存数据的访问,在实现复杂分析功能的同时,提升数据访问速度。关系型内存数据库的典型代表软件为 Oracle TimesTen、SAP HANA、MemSQL 和 SQLite。

1.3. 其他类型的内存数据库

除键值对内存数据库、关系型内存数据库之外,其他比较小众的内存数据库称为其他内存数据库,比如图内存数据库 RedisGraph 等。

2. 现状

现有内存数据库对比

数据库 数据结构 起始年份 License ACID支持

Redis

键值对

2009

开源BSD

不支持

Memcached

键值对

2003

开源BSD

不支持

Aerospike

键值对

2012

开源AGPL

只支持原子性

Ignite

键值对/关系型

2013

开源Apache2.0

支持

VoltDB

关系型

2010

商用/开源GPL

支持

SQLite

关系型

2000

开源Public domain

支持

H2

关系型

开源

支持