php使用memcached来存储查询数据,这一点有待讨论


php use memcached to store query data ,something to discuss

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的表中选中字段是相同的查询,所以我必须写很多代码来格式化它们。任何更好的设计都将受到赞赏

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

相关文章: