Playframework 在何处存储特定于用户的在线游戏数据

Playframework 在何处存储特定于用户的在线游戏数据,playframework,memcached,online-game,Playframework,Memcached,Online Game,我正在尝试使用Play框架创建一个在线棋盘游戏。这是我第一次申请。为最终用户提供良好的响应时间非常重要。 让我们想象一个类似垄断的游戏,其中多个用户玩游戏,购买不同的位置,在该位置建造房屋或酒店等。 用户玩的每一个回合都会有一些特定于该用户的棋盘外观变化。例如,如果董事会有40个位置,当用户1购买location1时,在他的下一轮中,董事会应该以他购买location1的方式关注他。 不同的用户在玩游戏时,棋盘的视图是不同的,这取决于他们的移动方式 所以问题是,在游戏进行过程中,在不影响每次检索

我正在尝试使用Play框架创建一个在线棋盘游戏。这是我第一次申请。为最终用户提供良好的响应时间非常重要。 让我们想象一个类似垄断的游戏,其中多个用户玩游戏,购买不同的位置,在该位置建造房屋或酒店等。 用户玩的每一个回合都会有一些特定于该用户的棋盘外观变化。例如,如果董事会有40个位置,当用户1购买location1时,在他的下一轮中,董事会应该以他购买location1的方式关注他。 不同的用户在玩游戏时,棋盘的视图是不同的,这取决于他们的移动方式

所以问题是,在游戏进行过程中,在不影响每次检索棋盘数据的响应时间的情况下,我在哪里存储特定于用户的数据? 如果是缓存,那么每个用户可以在缓存中设置哪些可接受的数据限制


谢谢

解决方案完全取决于您的环境。对于缓存,您需要指出策略和实现

如果您的web应用程序只在一台服务器上运行,那么您的任务很简单,您可以使用进程内缓存,并使用.Net缓存(如果您使用的是.Net)或memcache来实现它,这在大多数框架中都可以使用。但是,如果您有多台服务器共享和访问缓存数据,则需要使用进程外缓存,您可以使用memcache或任何其他缓存提供程序来访问应用程序内存外的内存缓存

您将在缓存中存储游戏模型,并在玩家更改它时进行更新。在这种方法中,您可以始终保持模型的状态,并从缓存中读取它

当你的应用程序依赖于缓存时要小心,因为如果缓存不可用,那么整个游戏都会失败。尽量将模型保存在数据库中。您可以将游戏数据保存在数据库中,但在特定数量的动作后更新,而不是在每次动作后更新


您还可以使用比Sql数据库快得多(不比内存缓存快)且比缓存持久得多的无Sql数据库。您可以将实时游戏数据存储在非sql数据库中,而将其他数据保存在sql数据库中。所以你可以有一个混合溶液

解决方案完全取决于您的环境。对于缓存,您需要指出策略和实现

如果您的web应用程序只在一台服务器上运行,那么您的任务很简单,您可以使用进程内缓存,并使用.Net缓存(如果您使用的是.Net)或memcache来实现它,这在大多数框架中都可以使用。但是,如果您有多台服务器共享和访问缓存数据,则需要使用进程外缓存,您可以使用memcache或任何其他缓存提供程序来访问应用程序内存外的内存缓存

您将在缓存中存储游戏模型,并在玩家更改它时进行更新。在这种方法中,您可以始终保持模型的状态,并从缓存中读取它

当你的应用程序依赖于缓存时要小心,因为如果缓存不可用,那么整个游戏都会失败。尽量将模型保存在数据库中。您可以将游戏数据保存在数据库中,但在特定数量的动作后更新,而不是在每次动作后更新


您还可以使用比Sql数据库快得多(不比内存缓存快)且比缓存持久得多的无Sql数据库。您可以将实时游戏数据存储在非sql数据库中,而将其他数据保存在sql数据库中。所以你可以有一个混合溶液

多谢各位。那真的很有帮助,谢谢。这真的很有帮助。