内存数据库是以内存为主要存储介质的数据库,它将数据存放在内存中直接操作。传统的磁盘数据库,需要频繁访问磁盘,但受磁头的机械移动和系统调用时间等影响,当访问的数据量很大,且操作频繁时,基于磁盘的数据库会受到很大影响。
内存的读写速度,相比较于磁盘高出几个数量级,例如:双通道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类似,它支持存储的值类型相对
最受欢迎的域名后缀域名空间问题-虚拟主机/数据库问题Linux中如何查看修改系统的时间和时区笔记本指纹识别在哪里|笔记本指纹识别的使用方法微商城如何提高用户粘性个域名解析了都不通-域名及账户问题炫云服务器价格表为什么不能新增域明了-备案平台