memcached - 如何将它用于单个SELECT操作返回的多个记录?

时间:2011-08-08 05:46:57

标签: memcached

memchached对于缓存和查找单个独立记录非常有用。对于从执行SELECT操作返回的多个记录,我怎样才能充分利用memcached进行缓存并在以后查找?

1 个答案:

答案 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. :(";
}