这个问题还是非常有趣。首先我们先看一张 DB-Engines 排名 :
「DB-Engines 排名」是按流行程度对数据库管理系统进行排名,涵盖 380 多个系统,每月更新一次。 排名标准包括搜索数据库名称时的搜索引擎结果的数量、Google 趋势、Stack Overflow、社交网络和提及数据库的工作机会等数据,综合比较排名。
从流行程度来讲,MongoDB的排名更高,为什么在中国差距这么大 ?
从应用场景上来讲,两者差别很明显:
MongoDB 是一种面向文档的数据库,它使用类似 JSON 的文档结构来存储数据。每个文档可以具有不同的字段和结构,使得数据模型非常灵活。Redis 是一种键值存储数据库,它将数据存储为键值对。键和值都是简单的字节字符串,Redis可以对值执行一些高级数据结构的操作,如列表、哈希表和集合。因此: MongoDB 适用于需要复杂查询和灵活数据模型的应用场景(关系型数据库的替代品),而 Redis 适用于需要快速读写和高速缓存的场景。
在中国,MongoDB 远远不如 Redis 流行,我认为有三点原因:
1、关系型数据库太强大,互联网时代,MySQL 成为王者
笔者作为工作14年的 IT 老兵,最开始接触 Oracle RAC , SQLServer ,后来互联网蓬勃发展的十年,使用 MySQL ,可以这么讲:SQL 的基因都嵌入到血液里了。 为了解决互联网大量业务数据的处理,又学习了分库分表,绝大部分都是基于 MySQL 。
有的公司选择 MongoDB ,也是想解决分库分表的问题,因为在2015年左右,分库分表的方案还没有那么完善。
后来随着分布式数据库的兴起,不管是 tidb ,oceanbase 都实现 MySQL 的语法,由此可见 MySQL 在 IT 界的影响力。
各个业务系统里, MySQL + Redis 基本上成为了系统的标配 。
2、功能特性层面适合初创团队
MongoDB 作为一个数据库产品,特别适合创业团队,之所以很多初创团队喜欢用 MongoDB ,就是因为它是一种面向文档的数据库, 使用类似 JSON 的文档结构来存储数据。这样在开发过程中,当需求频繁变动时,研发可以灵活修改文档,MongoDB 的优势就特别明显。
非常有趣的是,当团队扩大到一定规模,业务较为稳定时, MongoDB 就会逐渐被关系型数据库 MySQL 替代 。
这其中有一部分原因是 MySQL 深入人心同时也简单易于操作,MongoDB 在中国并没有那么多研发人员熟练使用。
3、社区影响力不够
笔者认为,社区影响力不够也是非常重要的因素。一门技术是否被研发接受,需要有传播,美誉度的不断加持。
很可惜,MongoDB 在这方面做得确实不好。一般来讲,大牛站台,优秀图书出版等都是技术传播的必由之路。
以上是笔者的浅见,欢迎留言讨论。
如果您觉得我的回答对您有帮助,麻烦点个赞 ,您的鼓励对我很重要。