1

我正在开发一个基于 php/mysql 的 api,它通过执行多个 sql 查询返回生成的 xml,然后将结果集组装成单个 xml 字符串/文档。

我将有多个客户请求此 api 的各种风格,例如:

http://domain.com/api/ /playerbio/12345 将返回一个球员的传记,其中包括个人信息、当前年初至今的统计数据、职业统计数据、伤病名单等。

这种类型的 api 请求将由许多客户每小时发出,针对不同的联赛、球队、名册、球员等

源数据库的统计人员和编辑人员全天不断地管理这些内容。

我目前有这个 api 直接从编辑器源数据库读取,几乎可以保证生成的任何 xml 文档都是最新的。

我正在考虑实施缓存策略以减少查询源数据库的次数,因为平均 xml 文档需要 4-7 次查询来收集所有数据以进行组装。

我在这里寻找策略和技术,特别是考虑到这个 api 每天将被调用 300-500k 次,并且 xml 文档大小范围从 20k 到 100k。

我知道有 APC、memcache、memcached、Redis、MongoDB,甚至创建了一个简单的基于文件的缓存,但我想听听其他人在类似情况下的使用情况。

4

2 回答 2

0

如果您想要快速且持久的数据,Redis 是您的选择,否则 MemcacheD 将是您的替代方案,但如果您的应用程序在单个服务器上运行,那么 APC 将是理想的选择。

于 2012-11-15T07:53:01.863 回答
0

我是 memcached 的忠实粉丝——它快速、易于使用并且具有用于集成的标准库。

memcached 速度非常快,可以提供大量数据,但它不是持久的,它是一个真正的缓存,所以希望有一种加载数据的方法。旧钥匙的自动修剪是无价的。

于 2012-11-15T03:17:07.537 回答