memchached对于缓存和查找单个独立记录非常有用。对于从执行SELECT操作返回的多个记录,我怎样才能充分利用memcached进行缓存并在以后查找?
答案 0 :(得分:2)
我没有得到你。如果您使用php或.net(Enyim客户端),您可以将结果存储到对象中并将其设置为memcached。 (客户端将序列化对象并将其存储在memcached中。)
以下示例将存储db查询返回的一个或多个记录(结果)。
//Init Memcache, Try avoid multiple init if possible because this is a costly operation
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
mysql_pconnect("localhost","root","");
mysql_select_db("YOURDB");
$query = "SELECT * FROM table where `firstname`='dasun';";
$key = md5($query);
$get_result = $memcache->get($key);
if ($get_result) {
print_r($get_result);
echo "It's a hit! :)";
}
else {
$result = mysql_query($query);
$row = mysql_fetch_array($result);
print_r($row);
// Store the result for 5 minutes
$memcache->set($key, $row, TRUE, 300);
echo "Not a hit. :(";
}