内存数据库的技术特点以及常用的内存数据库!

  • 来源:网络
  • 更新日期:2020-04-29

摘要: 内存数据库是以内存为主要存储介质的数据库,它将数据存放在内存中直接操作。传统的磁盘数据库,需要频繁访问磁盘,但受磁头的机械移动和系统调用时间等影响,当访问的数据量

内存数据库是以内存为主要存储介质的数据库,它将数据存放在内存中直接操作。传统的磁盘数据库,需要频繁访问磁盘,但受磁头的机械移动和系统调用时间等影响,当访问的数据量很大,且操作频繁时,基于磁盘的数据库会受到很大影响。

内存的读写速度,相比较于磁盘高出几个数量级,例如:双通道DDR3—1333内存,可以达到9300 MB/s(兆字节每秒,指每秒传输的字节数量),一般磁盘约为150 MB/s(兆字节每秒)。随机访问时间更是以毫秒计,一般磁盘约10 ms(毫秒),而双通道DDR3—1333内存,可以达到0.05 ms(毫秒)。

因此,内存数据库最大的特点就是“性能好、速度快”,它能提高应用的性能,更有效地使用CPU周期和内存。

内存数据库抛弃了“磁盘数据管理”的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在“数据缓存、快速算法、并行操作”方面也进行了相应的改进,所以内存数据库的数据处理速度,要比传统数据库的数据处理速度快很多(一般都在10倍以上)。内存数据库的最大特点是,其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。由于内存在系统中是稀缺的资源,内存数据库的容量大小受物理内存的限制,因此内存数据库中所管理的数据,通常只有“热点”或者“高频数据”,而不是全部数据。同时,内存数据库也会被要求根据灵活的策略与磁盘数据库进行数据同步。

内存数据库的技术特点如下:

1、 采用复杂的数据模型表示数据结构,数据冗余小,易扩充,实现了数据共享。

2、 具有较高的数据和程度独立性,数据库的独立性有“物理独立性”和“逻辑独立性”。

3、 内存数据库为用户提供了方便的用户接口。

4、 内存数据库提供4个方面的数据控制功能,分别是“并发控制、恢复、完整性和安全性。数据库中的各个应用程序所使用的数据,由数据库统一规定,按照一定的数据模型组织和建立,由系统统一管理和集中控制。

5、 系统的灵活性非常好。

常用的内存数据库有哪些?

1、 Memcached

Memcached是一种基于Key—Value的开源缓存服务器系统,主要用做数据库的数据高速缓冲,并不能完全称为数据库。Memcached具有多种语言的客户端开发包,包括:Perl、PHP、Java、C、Python、Ruby、C#。

内存数据库的技术特点以及常用的内存数据库!

Memcached的API(应用程序编程接口),使用32位循环冗余校验(CRC—32)计算键值后,将文件分散在不同的机器上。当表格满了以后,接下来新增的文件会以“LRU”机制替换掉。由于Memcached通常只是当做“缓存系统”使用,所以使用Memcached的应用程序,在写回较慢的系统时(像是后端的数据库),需要额外的程序更新Memcached内的文件。

Memcached的守护进程是用C语言编写的,客户端可以用任何语言来编写,并通过Memcached协议与守护进程通信。但是Memcached并不提供冗余(例如,复制其Hashmap条目);当某个服务器S停止运行或崩溃,所有存放在S上的“键/值对”都将丢失。

2、 Redis

Redis是一个Key—Value存储系统,和Memcached类似,它支持存储的值类型相对