MongoDB和Redis有什么区别?

时间:2011-06-22 20:09:59

标签: mongodb database-design redis database

在两者之间进行选择时,只是寻找人们认为的主要差异。

3 个答案:

答案 0 :(得分:33)

数据模型

MongoDB的

面向文档,类似JSON。每个文档在集合中都有唯一的键。文件是异质的。

Redis的

键值,值为:

  • 字符串列表
  • 字符串集(非重复未排序元素的集合)
  • 排序的字符串集(由称为得分的浮点数排序的非重复元素的集合)
  • 哈希,其中键是字符串,值是字符串或整数

Wikipedia之后。

存储

MongoDB的

磁盘,内存映射文件,索引应该适合RAM。

Redis的

通常在内存中。

查询

MongoDB的

按键,按文档中的任何值(可以索引),Map / Reduce。

Redis的

按键。

答案 1 :(得分:10)

我刚读了comparison between different NOSQL databases,我觉得很好地总结了一下:

MongoDB的:

  

最佳使用:如果您需要动态   查询。如果您愿意定义   索引,而不是map / reduce函数。如果   你需要在大数据库上有良好的表现。   如果你想要CouchDB,但你的数据   变化太大,填满了磁盘。

Redis的:

  

最佳使用:快速更改数据   具有可预见的数据库大小   (应该主要适合记忆)。

答案 2 :(得分:5)

Redis是一个键值存储,而mongofb是一个文档存储。

Redis在存储不相关的信息方面非常棒,而mongodb在构建或建模信息时非常棒。

我不是绝对的说话。它们都是nosql数据库,因此您几乎可以定义存储内容的形状和颜色,但实际上,这就是它们通常使用的方式。