当涉及到实际的软件开发问题时,很难立即在 Google 中找到正确的答案。通常,最有用的提示隐藏在来自博客、论坛或不可读文章的信息中。实际上,区分 Redis 和 MongoDB 是完全一样的情况。但是问题在这里解决了。
对于以前从未听过这两个词的人来说,Redis 和 MongoDB 是两个 NoSQL 数据库。从逻辑上讲,作为同一类下的两种类型,它们在结构上既有相似之处,也有不同之处。但它们到底是什么?
就相似之处而言,Redis 和 MongoDB 在这些领域是共同的:
- 发行年份:2009
- 许可类型:开源
- 兼容多种操作系统:Windows、Linux 和 OS X
- 支持多种编程语言:C、C#、C++、Clojure、D、Dart、Erlang、Go、Haskell、Java、Javascript、Lisp、Lua、MatLab、Perl、PHP、Prolog、Python、R、Ruby、Scala 和 Smalltalk
- 二级索引:启用状态
- 复制:主从
- 兼容:ScaleGrid、CData
- 需要相同的时间来构建复杂的数据处理请求
但当然,它们也是不同的——不同的步份,基本上在它们的原始模型中。
Redis 在内存中工作,并作为软件系统的组成元素。在那里,可以找到它作为数据库、缓存或消息代理。这个最简单的管理系统使用键和值对,使过程类似于使用字典。
而MongoDB 是一个文档存储。这种格式使其具有足够的自主性,可以作为云技术或自助服务基础设施的一部分工作。它不是由单一方案要求固定的,而是使用内部符号。
那么,两个数据库之间差异的基础是什么?
由于原始模型基础不同,Redis 和 MongoDB 有过无法比拟的时候。但最近,搜索引擎成为 Redis 和 MongoDB 的辅助数据库模型。这种修改(名为 Percona 内存引擎)使得将 Redis 与 MongoDB 进行同等比较成为可能。简单来说,Redis 以高性能着称,而 MongoDB 在使用 API 方面效率更高。但当然,还有更多细节和实际应用需要确定如何选择数据库。让我们看看它们在速度、性能、配置和其他处理标准方面有何不同。
Redis和MongoDB的区别
比较项 | Redis | MongoDB |
---|---|---|
简介 | Redis 是内存数据结构存储,用作数据库、缓存和消息代理。 | MongoDB 是最流行的 NoSQL 数据库之一,它遵循文档存储结构。 |
主数据库模型 | Redis 遵循键值存储模型。 | MongoDB 遵循文档存储模型。 |
官网 | www.redis.io | www.mongodb.com |
技术文档 | 可以在 redis.io/documentation 上获取 Redis 的技术文档 | 可以在 docs.mongodb.com/manual 上获取 MongoDB 的技术文档 |
开发者 | Redis 是由 Salvatore Sanfilippo 开发 | MongoDB 由 MongoDB Inc. 开发。 |
初始版本 | Redis 最初于 2009 年发布。 | MongoDB 也最初于 2009 年发布。 |
许可证 | Redis 是基于订阅和开源的。 | MongoDB 是免费使用和开源的。 |
基于云 | 否 | 否 |
实现语言 | Redis 是用 C 语言编写和实现的。 | MongoDB 是用 C++ 语言编写和实现的。 |
服务器操作系统 BSD、Linux、OS X、Windows | Linux、OS X、Solaris、Windows | |
数据方案 | 无模式 | 无模式 |
二级索引 | 否 | 是 |
SQL | 否 | 否 |
API 和其他访问方法 | Redis 遵循专有协议。 | MongoDB 遵循使用 JSON 的专有协议。 |
支持的编程语言 | C、C#、C++、Clojure、Crystal、D、Dart、Elixir、Erlang、Fancy、Go、Haskell、Haxe、Java、JavaScript (Node.js)、Lisp、Lua、MatLab、Objective-C、OCaml、 Perl、PHP、Prolog、Pure Data、Python、R、Rebol、Ruby、Rust、Scala、Scheme、Smalltalk、Tcl Actionscript | C、C#、C++、Clojure、ColdFusion、D、Dart、Delphi、Erlang、Go、Groovy、 Haskell、Java、JavaScript、Lisp、Lua、MatLab Perl、PHP、PowerShell、Prolog、Python、R、Ruby、Scala、Smalltalk |
服务器端脚本 | Lua | JavaScript |
触发器 | 否 | 否 |
分区方法 | Redis 使用 Sharding 进行分区。 | MongoDB 还使用 Sharding 进行分区。 |
复制方式 | Redis遵循主从复制。 | MongoDB 也遵循主从复制。 |
MapReduce | 否 | 是 |
一致性概念 | 最终一致性和直接一致性 | 最终一致性 |
外键 | 否 | 否 |
事务概念 | 乐观锁定、命令块和脚本的原子执行。 | 无 |
并发 | 是 | 是 |
MapReduce | 否 | 是 |
持久性 | 是 | 是 |
内存功能 | 是 | 是 |
用户概念 | 简单的基于密码的访问控制。 | 用户和角色的访问权限。 |
特殊特性 | Redis 被评为世界上最快的数据库。它降低了应用程序的复杂性,简化了开发,加快了上市时间,并通过其富有远见的数据结构和模块为开发人员提供了前所未有的灵活性。 | MongoDB被认为是下一代数据库。它通过提供大数据成功地帮助许多企业改变了他们的行业。世界上最复杂的组织,从尖端的初创公司到最大的公司,都使用 MongoDB 以非常低的成本创建前所未有的应用程序。 |
比较优势 | Redis 是一个内存数据库平台,支持广泛的数据结构,例如字符串、散列、集合、列表、排序集、位图、超日志和地理空间索引。 Redis 通过监督分片、重新分片、迁移的所有操作,以完全自动化的方式提供轻松的扩展。它还包括持久性、即时自动故障检测、备份和恢复,以及跨机架、区域、数据中心、区域和云平台的内存复制。 | MongoDB 提供了最好的传统数据库以及当今应用程序所需的灵活性、规模和性能。 MongoDB 是一个包含巨大想法的数据库。 MongoDB保留了关系数据库最有价值的特性,即强一致性、富有表现力的查询语言和二级索引。它有助于开发人员比 NoSQL 数据库更快地构建功能强大的应用程序。 |
主要用户 | Redis 的主要客户有:Verizon、沃达丰、Atlassian、Trip Advisor、Jet.com、诺基亚、三星、HTC、Docker、Staples、Intuit、Groupon、Shutterfly、毕马威、TD Bank、UnitedHealthcare、RingCentral、The Motley Fool、 Bleacher Report、HipChat、Salesforce、Hotel Tonight、Cirruspath、Itslearning.com、Xignite、Chargify、Rumble Entertainment、Scopely、Havas Digital、Revmob、MSN、Bleacher Report、Mobli、TMZ、Klarna、Shopify 等。 | MongoDB 的主要客户有: ADP、Adobe、阿斯利康、BBVA、博世、思科、欧洲核子研究中心、退伍军人事务部、eBay、eHarmony、艺电、Expedia、Facebook?s Parse、福布斯、Foursquare、基因泰克、大都会人寿、皮尔森、Sage、Salesforce、天气频道、Ticketmaster、Under Armour、Verizon Wireless 等。 |
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Redis和MongoDB的区别
本文链接:https://www.vsdiffer.com/vs/redis-vs-mongodb.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。