我正在创建一种游戏服务,在该服务中,玩家将配对并且可以实时相互竞争。我正在建立这是节点/ websockets,并作出反应。我的问题是很高的水平:
我应该在哪里存储在线用户数量,在线用户列表等数据。我确定可以将其存储在数据库中,但是我知道它会经常更改。这最适合于像“数据存储”这样的节点存储中的一个,还是服务器上的一组变量可供websocket访问(我现在所拥有的)?
还是我应该将其放入数据库中?
答案 0 :(得分:0)
如果您只有一台服务器,并且数据是列出的所有临时类型的数据(不需要在服务器重新启动后生存),则只需使用一组变量并将数据保存在内存中非常完美,实现起来最简单,并且效果最佳。除非数据过大(看起来似乎不是很大),否则实际上没有理由涉及传统的基于磁盘的存储的额外开销。
如果对服务器进行群集,则不需要在服务器重新启动时就永久存储的频繁更改的数据可以通过自身的过程(例如Redis)保存在内存数据库中。然后,群集中的每个服务器都可以在需要最新数据副本时随时查询redis。因为它是内存中的数据存储,所以对于变化很大的数据非常有效,同时也可用于多个进程。