我正在开发一个基于php / mysql的api,它从执行多个sql查询返回生成的xml,然后将结果集组装成单个xml字符串/文档。
我将有多个客户端请求此api的各种风格,例如:
http://domain.com/api/ / playerbio / 12345会返回一个玩家的传记,其中包含个人信息,当前的ytd统计数据,职业统计数据,伤病名单等各个部分。
这种类型的api请求将由许多客户每小时和各种联赛,球队,名单,球员等进行
源数据库的统计人员和编辑人员全天不断地管理这些内容。
我目前直接从编辑器源数据库中读取这个api,几乎可以保证生成的任何xml文档都是最新的。
我正在考虑实施缓存策略以减少查询源数据库的次数,因为平均xml文档需要4-7个查询来收集所有数据以进行汇编。
我正在寻找策略和技术,特别是考虑到这个api每天会被调用300-500k次,xml文档大小从20k到100k不等。
我知道有APC,memcache,memcached,Redis,MongoDB,甚至创建一个简单的基于文件的缓存,但我想听听其他人在类似情况下使用过的内容。
答案 0 :(得分:0)
我是memcached的忠实粉丝 - 它快速,易于使用,并具有用于集成的标准库。
memcached非常快,可以提供大量数据,但它不是持久的,它是一个真正的缓存,所以期望有一种方法来加载数据。旧密钥的自动修剪是无价的。
答案 1 :(得分:0)
如果你想快速和快速持久数据,Redis是另外一种方式,其他MemcacheD将是您的替代方案,减去持久性,但如果您的应用程序在单个服务器上运行,那么APC将是理想的。