重磅: 内存数据库现状和选型(附白皮书下载)

640?wx_fmt=jpeg

640?wx_fmt=gif&wxfrom=5&wx_lazy=1

今天,咱们经过DB Engines Ranking公认比较权威的数据库排行,对公认最为活跃的10款典型内存数据库进行对比。数据库

640?wx_fmt=jpeg

10款典型数据库简单对比安全


在开源产品中,Redis和Memcached是最受欢迎的两款键值对内存数据库;而SQLite是最受欢迎的关系型内存数据库。表中大部分的关系型内存数据库为商用数据库,其中热度最高的是SAP HANA。网络


在1995年,发布初版的Oracle TimesTen数据库仍然在榜上活跃。2014年新发布Apache Ignite兼容键值和关系型数据结构,热度正稳步攀升。数据结构


事务支持方面,大部分的关系型内存数据库称能够支持ACID,但都须要在性能上做出妥协。具体可参考表2中的信息。架构

 

内存数据库选型建议并发


技术服务于业务,内存数据库的选型应首先遵循业务场景的需求。业务特性决定了数据的应用特性,包括数据量、并发度、读写特性、一致性、响应时间、操做复杂度、业务连续性等要求,对应数据库的一致性、容错性、扩展性、安全性等技术要求。app


在作内存数据库的选型前,建议先梳理业务需求并进行量化;再将核心数据应用特性映射成数据库技术要求;最后按筛选出的技术要求进行选型。运维


1.技术因素微服务


按照技术要求进行内存数据库选型时,可主要考察业务的性能、一致性要求和SQL兼容性三个因素。高并发


一、业务是否有很高的性能要求?通常有高并发、低时延读写要求的业务,如游戏实时排行、直播粉丝关注等,建议选择内存数据库。


二、业务数据是否要求强一致性?若是业务对数据的可靠性和一致性要求较高、须要ACID级别的事务支持,则建议使用MySQL等传统的关系型数据库。但须要注意的是,强一致性的要求会对数据库的性能形成必定的影响;若是须要兼具高性能和强一致性,则须要在应用架构层面进行优化,单靠数据库的能力还没法实现。


三、数据处理是否要求SQL兼容性?在高性能要求的场景下,业务中若是数据结构固定、有复杂的关联计算要求,或是须要SQL语法支持的状况,建议使用关系型内存数据库;对于数据结构多变、扩展性要求高、数据模型和操做简单的场景,建议使用键值对内存数据库。


除了这三条考察指标,还能够结合数据容量、成本、扩展性、可维护性等需求进行综合考量。

 

2.非技术因素


上述选型方法主要考量的是技术因素,除此之外还能够结合实际状况,引入一些其余维度的考量,进行综合评估,最终挑选出适合的产品。包括但不限于如下维度:


1)生态成熟度。指数据库产品的状态,包括各类配套工具、技术架构成熟度、代码质量、开发模式、社区建设、商业支持服务、版权协议等。


2)应用架构适配度。指应用架构对数据库架构的兼容性、以及适配改造友好度,包括技术架构适配、开发语言适配等。


3)团队适应度。指开发团队、维护团队对数据库的熟悉程度、偏好程度、学习成本以及配套运维工具等。

 

硬件选型建议


内存数据库是为高性能而存在的,适合才是最好的,所以在硬件选型上建议根据业务状况综合考虑成本和收益。


1.如何选择存储


做为内存数据库,硬件选型的时候,优先考虑的就是大内存,好比:256GB或512GB。若是在技术选型的时候,业务上要求有持久化的功能,那么在硬件选型的时候须要考虑到磁盘的IOPS,好比选择了Redis,须要作RDB+AOF的持久化,那么硬盘最好是SSD或者PCI-e。


若是有足够的预算,而且业务对内存数据的访问量不是很是大,响应时间没有那么高,那么也能够考虑用Persistent Memory(这种新技术的性能是物理内存性能的70-80%)。


还有一种特别的使用场景,那就是冷热数据分离,热数据存储在内存中,冷数据存储在磁盘上,这种经常会涉及到冷热数据的相互交换,那么这种状况,就须要磁盘要有足够高的性能,PCI-e最佳。


2.如何选择网络


千兆网卡便可知足大部分需求,若是预算充足并但愿达到极致的性能,可选择万兆交换机和万兆网卡。


3.如何选择CPU


基于X86架构的CPU单核心性能更高,能适配大部分的内存数据库产品,成本也相应更高;ARM架构的CPU成本更低廉,但能够适配的内存数据库产品有限。


在6月4日下午的大会上,重磅发布<内存数据库白皮书>,中国信息通讯研究院云计算与大数据研究所王妙琼对白皮书进行了解读。


内存数据库白皮书

  • https://pan.baidu.com/s/150Uhd6AFEFtlW5on9zLjNQ

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1


白皮书还从技术和管理两个角度提出了产品选型和硬件选型建议,并总结了内存数据库的发展趋势。


推荐阅读(2019精华):



舒适提示:

请识别二维码关注公众号,点击“阅读原文”获取更多云计算、微服务架构等技术资料总结

640?wx_fmt=jpeg

640?wx_fmt=gif&wxfrom=5&wx_lazy=1