最好将Redis和MongoDB一起使用,最好将每个会话存储在Redis中并在会话结束时更新数据库?

时间:2018-10-25 10:42:58

标签: database mongodb server redis

我找到了一篇文章here,其中介绍了Redis的前3种用法。对于我的Minecraft网络,我将必须包含会话管理,玩家资料,排行榜等,而Redis似乎非常适合。 MongoDB似乎非常适合以Json格式(以前使用过的MySQL)存储播放器数据(编辑:我也在这里读过this文章,这可能使我害怕使用MongoDB)。

最初,我计划建立一个系统,其中:

播放器登录网络->从MongoDB提取其数据并将其存储到Redis->播放器加入网络上的服务器->从Redis提取其数据并存储在配置文件包装对象内->播放器离开服务器加入另一台服务器->将其数据保存到旧服务器上的Redis中->将其数据从新服务器上的Redis中下载->播放器离开整个网络->将其数据存储到MongoDB中并从中删除Redis。

我将创建一个ProfileSnapshot类,其中包含配置文件在加载时的快照,这样,如果播放器移至新服务器时内部数据没有发生变化,则不会保存数据。 / p>

我想知道保存到Redis的数据是否可能比从Redis到新服务器上的数据加载慢-以便下载的数据不是真实数据。

第二,将MongoDB播放器配置文件加载到Redis是否有效,我是否应该为此使用Redis?还是应该在玩家每次从服务器移动到服务器时从MongoDB中加载玩家数据? Redis在这种情况下有用吗? MongoDB足够快地加载数据并不断保存数据吗?我预计网络上可能一次有400位玩家。

我是否可以使用其他设计来建立一个网络,使所有播放器都可以访问数据,并且数据存储在MongoDB / Redis中?播放器数据需要始终位于播放器所在的服务器上,并且播放器可以随时更改服务器。

其他信息:

Redis仅存储在线玩家的个人资料。

Redis和MongoDB通常用于Minecraft网络(可能无关紧要,但只是确保我的想法可以接受)。

速度是关键。

数据也必须可用于我的网站,所以flatfile不是一个选择。等

0 个答案:

没有答案