我正在开发一个基于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,甚至创建一个简单的基于文件的缓存,但我想听听其他人在类似的情况下使用了什么。
发布于 2012-11-15 11:17:08
我是memcached的铁杆粉丝--它速度快,易于使用,并且有标准的集成库。
memcached非常快,可以提供大量数据,但它不是持久的,它是一个真正的缓存,所以希望有一种方法来加载数据。旧钥匙的自动修剪是无价的。
发布于 2012-11-15 15:53:02
如果你想要快速持久的数据,Redis是你的选择,否则MemcacheD将是你的替代方案,但如果你的应用程序运行在单个服务器上,那么APC将是理想的选择。
https://stackoverflow.com/questions/13390959
复制相似问题