gpt4 book ai didi

mongodb - 同时使用redis和mongodb有意义吗?

转载 作者:IT老高 更新时间:2023-10-28 13:37:26 24 4
gpt4 key购买 nike

我们有很多数据,决定使用 mongodb,效果很好。

我们开始使用 redis 来跟踪我们实时应用中的活跃用户。我们还开始用 redis 做一些发布/订阅 channel 的东西。

我们的下一步可能是使用 mongodb 处理休眠数据,使用 redis 处理事件数据。这方面的一个例子是,我们所有的用户都存储在 mongodb 中,但是当他们登录时,我们会将这些数据的副本移动到 redis 以便快速访问。我们还将他们的游戏事件等内容存储在 redis 中,并相应地使用这些数据。当用户注销时,我们会将所需的任何内容保存在 mongo 中,直到再次需要它并加载到 redis 中。

我们一直在研究的一件事是在崩溃时保留 redis。系统上的用户事件是我们不希望在崩溃时丢失的有意义的数据,如果我们只是在事后记录数据,我们是否应该在每次事件后在 mongo 中保存重要数据的备份?那么在 crash redis 可以从 mongo 恢复吗?

有没有更好的方法来实现我们正在努力实现的目标?

谢谢!

最佳答案

好的,所以有几个角度可以解决这个问题。首先要指出的是redis确实有user-configurable persistence .

User activity on the system is meaningful data that we wouldn't want to lose on crash, and if we are only logging data after the fact, should we save a back up of important data in mongo after every event?

公平地说,MongoDB 的默认设置是每 60 秒刷新一次磁盘。因此,您仍有 60 秒的数据丢失窗口。

  1. 您可以使用journaling并将该窗口降至 100 毫秒,但这会对 IO 造成更大的负担。
  2. 您还可以将写入程序配置为等待该日志刷新(WriteConcern:fsync),但这会显着减慢写入速度。

Is there are better way to go about the things we are trying to achieve?

真的取决于您要达到的目标。

  • 您可以处理哪些类型的数据丢失?
  • Redis has replication ,你在用吗?这是否解决了您的大部分数据丢失问题?
  • 您说您正在使用 PubSub 功能,这涵盖了多少个节点?您的数据是否因此得到充分复制?

不管怎样,这都是一个有点复杂的问题。 MongoDB 可能会解决您的问题,但复制也可以解决这些问题。取决于您的舒适程度。

关于mongodb - 同时使用redis和mongodb有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6825504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com