php使用memcached来存储查询数据,讨论一下

时间:2011-06-29 03:59:04

标签: php memcached

function select(){
    //format sql string
    $sql = format($sql);
    //a unique key to store this query
    $encodeKey = md5($sql);
    if( $cacheObj = $memcache->get( $encodeKey ) ){
        // cache data exist ,to get it
        $result = $cacheObj;
    }
    else{
        //or create a cache data 
        $query = $this->exec($sql);
        $result = mysql_fetch_array( $query );
        $memcache->set( $encodeKey, $result );
    }
    return $result;
}

我使用md5方法将查询字符串存储为memcached键, 这是一个好方法吗?或者比这更好的东西。

和'format'功能, 从表中选择id ='5'的字段,并从表中选择id = 5的字段 是同一个查询, 所以我必须编写很多代码来格式化它们。 任何更好的设计将不胜感激

1 个答案:

答案 0 :(得分:0)

使用md5生成密钥很好,尽管它可能会对性能产生潜在影响。使用该方法的缺点是,如果底层数据发生变化,则更难以选择性地使缓存中的数据到期。