0

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

我不需要实时进行,但可能每 5-20 秒一次,因为它是基于回合制的。我不介意我是否会丢失数据,因为客户会不时重新设置头寸。

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

也许我的做法是错误的,但是,这种方法似乎很容易做到,但是我不确定它的效果如何,因为我对这两种解决方案都没有很多经验。

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

可以这样做吗,有没有比memcached/redis更好的解决方案?如果不是这两个中的哪一个在性能方面会更好?据我了解,这几乎是一回事,只是 redis 提供了更多功能(可能不一定需要)。

哦,是的,我显然也在使用 APC 和 php。谢谢!

4

2 回答 2

0

整个数据模型中只有 10 个对象,我会将它们作为序列化数组存储在一个键下。与 memcached 调用相比,序列化时间将相形见绌,因此您不妨尽量减少对 1 的读取和写入次数。

我刚刚查看了 redis 在线演示,它看起来很整洁。感谢您的链接。我不能说哪个更好,但是 PHP 中的 memcached 已经过验证和成熟,所以你不会出错。

于 2011-02-16T03:29:56.483 回答
0

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

于 2011-08-12T07:18:28.333 回答