在NoSQL数据库中,Redis和MongoDB都是非常受欢迎的选择。他们分享一些重要的性能,如速度和数据组织方式,都是对开发者有益的,但是Redis在什么情况下能超越MongoDB呢?这实际上取决于存储的数据类型和性质,以及它将如何在应用程序中使用。
MongoDB是有优势的
如果要存储和查询非常大的数据集—— 最值得注意的是如果这些数据集将在定期的基础上增长,那么 MongoDB 是获胜者。这样做的原因是 MongoDB 擅长缩放日益增长的数据集,同时也使这一进程对数据库管理员和开发人员来说非常容易。
在发展领域,MongoDB提供BSON数据格式,就像无数的JSON格式开发者有相当多的经验。其中每个子文档,提供了一个层次结构的数据文件。这可供面向对象语言的开发人员进行的训练所使用。
MongoDB查询的一个例子。来源:MongoDB
Redis的擅长
您的数据库有预测尺寸的大小吗?如果数据库的大小随着时间基本上保持不变,Redis可以优化这一特性,为您提供大量的查找速度。通过将数据库存放在内存中,Redis可以执行高性能缓存,并能极其迅速地找到所需的数据。
另一种方法,Redis可以为速度优化其组织作为键值存储。如果你有一个已知的键,对于数据的查找是非常快。例如,应用程序过程中的实时数据,如股票价格跟踪应用程序,在Redis上将跑的非常快,因为它将优化的价格作为了特定的键的查找。
对于开发人员来说,也可以选择使用更复杂的数据结构如标量、集、散列和列表。这些都非常类似于在许多编程语言名称类似的结构,从而使学习曲线更陡峭的开发人员,已经非常熟悉了这些结构。
Redis,列表的一个示例。来源:Redis
Redis何时快
总之,如果你符合这些条的话,Redis将会成为在性能方面更好的选择:
- 你会有一个相对一致的和可知大小的数据库。
- 速度将是非常重要的,你将能够使用一个已知的键进行数据检索。
- 你想要存储数据进行实时显示或实时分析。
为此,你应该能够确定何时以及如何使用Redis,将会比MongoDB执行的应用程序更快 !