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的字段 是同一个查询, 所以我必须编写很多代码来格式化它们。 任何更好的设计将不胜感激
答案 0 :(得分:0)
使用md5生成密钥很好,尽管它可能会对性能产生潜在影响。使用该方法的缺点是,如果底层数据发生变化,则更难以选择性地使缓存中的数据到期。