热门回答:
内存数据库是相对于磁盘数据库来说的。我们都知道我们经常使用的关系型数据库。比如MySQL。它的数据文件最终是存储到磁盘上的。而内存数据库则是将所有的数据存储在内存中。磁盘和内存在访问速率上不是一个量级的。完全没有可比性。
应用场景
缓存数据:将高频访问的数据通过一定的机制加载到内存中。减少应用与数据库的连接。极大的提高了应用的性能;
内存计算:如果你的数据在内存中。那么你可以充分利用CPU的资源去做数据的计算、聚合、查询。而不用担心数据库是否能承受你的SQL查询。
主流的内存数据库
关系型内存数据库:H2、Apache Ignite、SQLite
H2:支持嵌入式。服务器和集群模式。支持内存数据库。纯Java开发
Key-Value内存数据库:redis、Memcached
传统数据库的内存数据库引擎:
MySQL Memory Engine
SQL Server 2016 In-Memory OLTP
传统数据库提供的内存数据库。将磁盘数据加载到内存中。利用查询引擎操作内存数据
总结
以上是个人整理的一些内存数据库。都是我们平常业务开发时候多少都有用到的内存数据库。了解每一种内存数据库的特性。结合它们的优缺点并应用于不同的业务场景。才是正确的编码之道。
内存数据库不是银弹。他也不能代替传统数据库。只有内存数据库与传统数据库(磁盘数据库)强强联手、互相补充才能发挥出数据存储技术的强大威力!
其他观点:
关系型 Mongodb、Hana、H2;
MongoDB 是一个基于分布式文件存储的数据库。介于关系型和非关系型之间。数据以文档的形式存在。文档以BSON格式存放。
Hana是德国SAP公司的产品。非开源、价格比较昂贵并且对服务器硬件配置要求比较高。国内用的比较少。
H2开源产品。优点小而快、查询语法简单。嵌入式和单独部署皆可。
KV型 Redis、Memcache、 Ignite、Guavacache;
Redis常被用做分布式缓存组件。支持的数据结构比较丰富。集群架构部署性能更强悍。
Memcache仅仅是作为第三方缓存组件使用。不能称之为数据库。支持的数据结构单一。支持集群部署。
Apache Ignite从名字就能看的出来。Apache的开源分布式产品。支持内嵌也支持单独部署。功能挺强大。有兴趣的可以看下官网。JVM堆外内存。
Guavacache仅仅是作为项目内部缓存使用。不能称之为数据库。内嵌式。占用JVM堆内存。
以上就是服务器端常用的内存数据库。大多数对持久化都支持的挺好;
但是一般关系型的用来存储数据并且持久化。KV型的用来做缓存。两者搭配来用。
以上仅个人观点。欢迎大家评论区留言指正。
其他观点:
1。SQLITE是一个小型的C程序库。实现了独立的。可嵌入的。零配置的SQL数据库引擎。
2。ORACLE内存数据库系列BERKELEY DB和TIMES TEN。前者只支持嵌入式内存数据。后者是独立的内存优化数据库。
3。EXTREMEDB内存式实时数据库是为实时系统及嵌入式系统而特别设计的数据库。
4。H2 DATABASE 是THOMAS MUELLER提供的一个开源的。纯JAVA实现的关系数据库。
您还感兴趣的文章推荐
- 在北京月入14k,这种情况下要不要离职呢?
- 27岁:考研还是考公?该如何做出选择?
- 如何平衡自己的时间与陪伴孩子的时间?有哪些实用方法?
- 大专女生学前教育毕业一年多,有两家园工作经验想转行该咋办?
- 普通人怎样做才能挣到钱?有哪些途径和方法?
以上就是由互联网推广工程师 网创网 整理编辑的,如果觉得有帮助欢迎收藏转发~
本文地址:https://www.wangchuang8.com/143411.html,转载请说明来源于:网创推广网
声明:本站部分文章来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系进行处理。分享目的仅供大家学习与参考,不代表本站立场。
评论(2)
数据库,内存,数据,关系,缓存,是一个,磁盘,开源,分布式,集群
没想到大家都对内存数据库有哪些?感兴趣,不过这这篇解答确实也是太好了
内存数据库是相对于磁盘数据库来说的。我们都知道我们经常使用的关系型数据库。比如MySQL。它的数据文件最终是存储到磁盘上