使用memcached / redis / alternative进行小型多人游戏更新对象的位置

时间:2011-02-16 01:31:59

标签: php memcached redis multiplayer

所以我正在制作一个小型多人游戏,我使用php作为后端。我基本上需要设置和获取很多对象的位置,一个对象是一个在这种情况下具有X / Y位置的玩家。

我不需要实时测试,但也许每5-20秒就可以使用它。我不介意我是否放松了数据,因为客户不时会再次设置位置。

我想用memcached或redis来做这件事。基本上每个玩家都是一个“钥匙”,这个钥匙会包含一个带有一些相关信息的物体,但最重要的是它在X / Y位置。

也许我会以错误的方式解决这个问题但是,这种做法似乎很容易做到,但我不确定它的效果如何,因为我对这两种方法都没有很多经验。< / p>

我应该补充一点,我们在这里谈论的可能是10个玩家,因此有10个x / y位置的对象需要不时更新。

可以这样做,有没有比memcached / redis更好的解决方案?如果不是这两个中的哪一个会更好地表现?根据我的理解,它几乎是相同的,只是redis提供了更多的功能(可能不一定需要)。

哦,是的我显然也在使用带有PHP的APC。谢谢!

2 个答案:

答案 0 :(得分:0)

在整个数据模型中只有10个对象,我将它们全部存储为单个键下的序列化数组。与memcached调用相比,序列化时间会变得苍白,因此您可以最大限度地减少对一个调用的读写次数。

我刚刚查看了redis在线演示,看起来非常整洁。谢谢你的链接。我不能说哪个更好,但PHP中的memcached已经证明并且已经成熟,所以你不会在那里出错。

答案 1 :(得分:0)

Redis在资源上最便宜,尤其是32位版本,例如如果您使用较少的2 GB高速缓存,我相信,即使您的服务器是64位,运行23位Redis。