我正在开发一个基于 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,甚至创建了一个简单的基于文件的缓存,但我想听听其他人在类似情况下的使用情况。