我们有很多数据,决定使用mongodb,效果很好。
我们开始使用redis跟踪实时应用中的活跃用户。我们也开始用redis做一些发布/子频道的东西。
我们的下一步行动可能是将mongodb用于休眠数据,将redis用于活动数据。这方面的一个例子是,我们所有的用户都存储在mongodb中,但是当他们登录时,我们会将该数据的副本移动到redis以便快速访问。我们还将其游戏活动等内容存储在redis中并相应地使用数据。当用户注销时,我们将保存mongo所需的任何内容,直到它再次需要并加载到redis中。
我们一直在研究的一件事是在崩溃时保留redis。系统上的用户活动是我们不希望在崩溃时丢失的有意义的数据,如果我们只是在事后记录数据,我们是否应该在每次事件后保存mongo中重要数据的备份?然后崩溃redis可以从mongo恢复?
有没有更好的方法来实现我们想要实现的目标?
谢谢!
答案 0 :(得分:6)
好的,所以有几个角度来攻击这个问题。首先要指出的是redis确实有user-configurable persistence。
系统上的用户活动是我们不想在崩溃时丢失的有意义的数据,如果我们只是在事后记录数据,我们是否应该在每次事件后保存mongo中重要数据的备份?
公平地说,MongoDB的默认设置是每60秒刷新一次磁盘。所以你仍然有60秒的数据丢失窗口。
有没有更好的方法来实现我们想要实现的目标?
真的取决于你想要达到的目标。
无论哪种方式,这都是一个有点复杂的问题。 MongoDB可能会解决您的问题,但复制也可以解决这些问题。取决于您的舒适度。