我有一个类似的查询:
SELECT id as OfferId FROM offers
WHERE concat(partycode, connectioncode) = ?
AND CURDATE() BETWEEN offer_start_date
AND offer_end_date AND id IN ("121211, 123341,151512,5145626 ");
现在我想使用memcache缓存此查询的结果,所以我的问题是
答案 0 :(得分:1)
这样的事情应该有效:
function getOffers($ids) {
$key = implode(',', $ids);
$cache = new Memcache();
$cache->connect('localhost');
$content = $cache->get($key);
if ($content === false) {
// content is not cached, so we have to run the query
$content = $yourDb->query('your query here');
$cache->add($key, $content);
}
$cache->close();
return $content;
}
getOffers(array('121211','123341','151512','5145626'));
您可以通过对$ids
进行排序来更进一步,以便相同的“ID”集(但以不同的顺序)仍将利用该集的可用缓存。
这不是日期敏感的,但您可以通过将日期字符串添加到$key