我们从Redis开始,存储活动数据,登录用户等.我们也使用一些pubsub进行实时数据传递.
最近我们添加了Mongo以满足我们的地理空间需求,对于非活动数据来说似乎也很棒.
这两个如何一起工作?使用两者都很愚蠢吗?当它们变为活动状态时,将数据块从mongo传递到redis是否愚蠢?
我们的想法是,我们可以将所有内容存储在mongo中,但是当用户处于活动状态并且可能访问数据时,将用户数据从mongo传递到redis.我知道Mongo自己做了一些像这样的缓存,我们对它们都是新手,只是想知道它们应该如何一起使用,如果有的话.
谢谢!!
使用两者都很愚蠢吗?当它们变为活动状态时,将数据块从mongo传递到redis是否愚蠢?
所以我觉得测试和验证这个问题实际上是合法的.Redis基本上是一个"内存"数据库,所以你可以通过给Mongo提供这么多RAM来做得更好吗?
从历史上看,我们使用Memcache/MySQL组合来基本上"添加RAM"到MySQL并限制它需要写的数量.我们这样做只是因为对MySQL进行分片很复杂.
但是,MongoDB提供了一种分片机制.因此,您可以通过添加更多分片来"添加RAM"以解决问题(以及"添加磁盘").
由于内存映射文件的工作方式,MongoDB倾向于将最近使用的数据保存在内存中.因此,如果您将最近的数据提取到Redis中,那么这些数据可能也存在于MongoDB端的内存中,因此不清楚您是否可以在两个地方使用它.
这是愚蠢的......
没有一些测试和分析,这很难说.MongoDB实际上没有pub/sub机制,但它确实具有快速的查询时间,因此它可能适用于特定的位置.