我最近看到很多人用Redis作为缓存,为什么Mongo不呢?据我所知,Redis可以设置索引的过期日期,比如memcache,但除此之外,有什么理由不使用Mongo吗?

当我在MySQL中进行大型连接,然后在 Select 数据后更改数据时,我会这样问.我已经在网站的其他部分使用了memcache,但将其保存在Mongo中可以让我对缓存的数据进行地理空间搜索.

推荐答案

很多人确实使用MongoDB进行中低级别缓存,而且效果非常好.

由于它提供了比通过即席查询功能的简单键值存储更多的功能,因此它不像memcache或redis那样纯粹的缓存层(插入和检索数据的速度可能较慢).

可以获得极高的性能(毕竟工作集在RAM中),但数据模型更重.

然而,另一方面,与Redis不同,MongoDB确实提供了一个持久性层,对于以后最可能需要的数据类型(对大多数开发人员来说)更有意义.

Mongodb相关问答推荐

在提供的文档(_Id)之后和之前,是否有一个Mongo操作来获取已排序(和/或过滤)集合中的文档计数?

spring-data-mongodb 上的 TopN 聚合

Mongoose updateMany 以及 Where 和 orWhere?

来自嵌套对象数组的 MongoDB 聚合

如何在 go mongo-driver 中为 options.FindOne() 设置限制

从 mongodb Golang 检索时判断零等效时间.时间

如何使用python将csv数据推送到mongodb

Meteor 方法与deny/allow 规则

如果 mongoDB 服务器正在运行,如何从驱动程序判断

如何在 MongoDb 中进行类似于嵌套 Sql Select 查询的嵌套查询

mongodb,pymongo,aggregate聚合给出奇怪的输出

.NET 中的 Mongodb 单元测试

如何返回 MongoDB 中文档的 ObjectId 或 _id?和错误$in 需要一个数组

C# mongodb driver 2.0 - 如何在批量操作中更新插入?

无法从 MongoDb C# 中的 BsonType ObjectId 反序列化字符串

REACT 获取发布请求

Mongo按实际上是数字的字符串值排序

MongoDB - Permission denied for socket: /tmp/mongodb-27017.sock

show dbs 给出Not Authorized to execute command错误

MongoDb - 利用多 CPU 服务器进行写入繁重的应用程序