【问题标题】:Using MongoDB and Redis together?同时使用 MongoDB 和 Redis?
【发布时间】:2011-10-17 03:15:09
【问题描述】:

我们从 Redis 开始,存储活动数据、登录用户等。我们也使用一些 pubsub 来进行实时数据传递。

最近我们添加了 Mongo 来满足我们的地理空间需求,它似乎也适用于非活动数据。

这两者应该如何协同工作?两个都用是不是很蠢?当它们变得活跃时,将大块数据从 mongo 传递到 redis 是愚蠢的吗?

我们的想法是,我们可以将所有内容存储在 mongo 中,然后在用户处于活动状态并且可能访问数据时将用户数据从 mongo 传递到 redis。我知道 Mongo 自己会做一些这样的缓存,我们对它们都是新手,只是想知道它们应该如何一起使用,如果有的话。

谢谢!!

【问题讨论】:

    标签: mongodb redis


    【解决方案1】:

    两者都用是愚蠢的吗?当它们变得活跃时,将大块数据从 mongo 传递到 redis 是愚蠢的吗?

    所以我觉得实际上有一个合法的测试和验证这个问题。 Redis 基本上是一个“内存中”数据库,那么通过将 RAM 提供给 Mongo 可以做得更好吗?

    从历史上看,我们使用 Memcache/MySQL 组合基本上是“添加 RAM”到 MySQL 并限制它需要执行的写入量。我们这样做只是因为分片 MySQL 很复杂。

    不过,MongoDB 提供了分片机制。因此,您可以通过添加更多分片来为问题“添加 RAM”(以及“添加磁盘”)。

    由于内存映射文件的工作方式,MongoDB 倾向于将最近使用的数据保存在内存中。因此,如果您将最近的数据提取到 Redis 中,那么该数据可能也在 MongoDB 端的内存中,因此不清楚将它放在两个地方是否对您有利。

    是不是傻了……

    如果不进行一些测试和分析,这很难说。 MongoDB 并没有真正的 pub/sub 机制,但它确实具有快速的查询时间,因此它可能适用于特定场合。

    【讨论】:

    • 是的,我们出于不同的原因喜欢它们,而且它们在我们使用它们时工作得很好。我们可能会继续使用两者。我们只需要弄清楚它们在哪里智能地交叉路径。感谢您的洞察力!
    猜你喜欢
    • 2012-05-28
    • 1970-01-01
    • 2012-04-12
    • 2014-12-12
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多