
网友提问:
内存数据库有哪些?
优质回答:
关系型 Mongodb、Hana、H2;
MongoDB 是一个基于分布式文件存储的数据库,介于关系型和非关系型之间,数据以文档的形式存在,文档以BSON格式存放。
Hana是德国SAP公司的产品,非开源、价格比较昂贵并且对服务器硬件配置要求比较高,国内用的比较少。
H2开源产品,优点小而快、查询语法简单,嵌入式和单独部署皆可。
KV型 Redis、Memcache、 Ignite、Guavacache;
Redis常被用做分布式缓存组件,支持的数据结构比较丰富,集群架构部署性能更强悍。
Memcache仅仅是作为第三方缓存组件使用,不能称之为数据库,支持的数据结构单一,支持集群部署。
Apache Ignite从名字就能看的出来,Apache的开源分布式产品,支持内嵌也支持单独部署,功能挺强大,有兴趣的可以看下官网,JVM堆外内存。
Guavacache仅仅是作为项目内部缓存使用,不能称之为数据库,内嵌式,占用JVM堆内存。
以上就是服务器端常用的内存数据库,大多数对持久化都支持的挺好;
但是一般关系型的用来存储数据并且持久化,KV型的用来做缓存,两者搭配来用。
以上仅个人观点,欢迎大家评论区留言指正。
其他网友回答
内存数据库从范型上可以分为关系型内存数据库和键值型内存数据库。
在实际应用中内存数据库主要是配合oracle或mysql等大型关系数据库使用,关注性能。
作用类似于缓存,并不注重数据完整性和数据一致性。
基于键值型的内存数据库比关系型更加易于使用,性能和可扩展性更好,因此在应用上比关系型的内存数据库使用更多。
比较FastDB、Memcached和Redis主流内存数据库的功能特性。
FastDB的特点包括如下方面:
1、FastDB不支持client-server架构因而所有使用FastDB的应用程序必须运行在同一主机上;
2、fastdb假定整个数据库存在于RAM中,并且依据这个假定优化了查询算法和接口。
3、fastdb没有数据库缓冲管理开销,不需要在数据库文件和缓冲池之间传输数据。
4、整个fastdb的搜索算法和结构是建立在假定所有的数据都存在于内存中的,因此数据换出的效率不会很高。
5、Fastdb支持事务、在线备份以及系统崩溃后的自动恢复。
6、fastdb是一个面向应用的数据库,数据库表通过应用程序的类信息来构造。
FastDB不能支持Java API接口,这使得在本应用下不适合使用FastDB。
Memcached
Memcached是一种基于Key-Value开源缓存服务器系统,主要用做数据库的数据高速缓冲,并不能完全称为数据库。
memcached的API使用三十二位元的循环冗余校验(CRC-32)计算键值后,将资料分散在不同的机器上。当表格满了以后,接下来新增的资料会以LRU机制替换掉。由于 memcached通常只是当作缓存系统使用,所以使用memcached的应用程式在写回较慢的系统时(像是后端的数据库)需要额外的程序更新memcached内的资料。
memcached具有多种语言的客户端开发包,包括:Perl、PHP、JAVA、C、Python、Ruby、C#。
Redis
Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了C++、Java、Python,Ruby,Erlang,PHP客户端。
标签: [db:关键字]
本文地址:https://www.lifejia.cn/news/295598.html
免责声明:本站内容仅用于学习参考,信息和图片素材来源于互联网,如内容侵权与违规,请联系我们进行删除,我们将在三个工作日内处理。联系邮箱:cloudinto#qq.com(把#换成@)

 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 