所以我正在制作一个小型多人游戏,我使用php作为后端。我基本上需要设置和获取很多对象的位置,一个对象是一个在这种情况下具有X / Y位置的玩家。
我不需要实时测试,但也许每5-20秒就可以使用它。我不介意我是否放松了数据,因为客户不时会再次设置位置。
我想用memcached或redis来做这件事。基本上每个玩家都是一个“钥匙”,这个钥匙会包含一个带有一些相关信息的物体,但最重要的是它在X / Y位置。
也许我会以错误的方式解决这个问题但是,这种做法似乎很容易做到,但我不确定它的效果如何,因为我对这两种方法都没有很多经验。< / p>
我应该补充一点,我们在这里谈论的可能是10个玩家,因此有10个x / y位置的对象需要不时更新。
可以这样做,有没有比memcached / redis更好的解决方案?如果不是这两个中的哪一个会更好地表现?根据我的理解,它几乎是相同的,只是redis提供了更多的功能(可能不一定需要)。
哦,是的我显然也在使用带有PHP的APC。谢谢!
答案 0 :(得分:0)
在整个数据模型中只有10个对象,我将它们全部存储为单个键下的序列化数组。与memcached调用相比,序列化时间会变得苍白,因此您可以最大限度地减少对一个调用的读写次数。
我刚刚查看了redis在线演示,看起来非常整洁。谢谢你的链接。我不能说哪个更好,但PHP中的memcached已经证明并且已经成熟,所以你不会在那里出错。
答案 1 :(得分:0)
Redis在资源上最便宜,尤其是32位版本,例如如果您使用较少的2 GB高速缓存,我相信,即使您的服务器是64位,运行23位Redis。