2017-05-22 1 views

답변

3

당신은 대신에 쿼리 캐시의 데이터 캐시를 사용하려면이 코드를 수정할 수 확인. 2.0.11에서

$data = $cache->get('customer' . $id); 
if ($data === false) { 
    $data = Customer::findOne($id); 
    $cache->set('customer' . $id, $data, 60 * 60 * 24 * 4); 
} 

또는 시작 :

$data = $cache->getOrSet('customer' . $id, function() use ($id) { 
    return Customer::findOne($id); 
}, 60 * 60 * 24 * 4); 

그래서 지금 당신은

$cache->delete('customer' . $id); 
+0

thnx 일 뿐이다. – lolka

0

를 업데이트 한 후 고객의 현재 데이터의 캐시를 취소합니다.

Yii::$app->cache->flush(); 

당신은 TagDependency를 사용할 수 있습니다 자세한 내용은

$result = Customer::getDb()->cache(function ($db) use ($id) { 
    return Customer::findOne($id); 
}, 60 * 60 * 24 * 4, new TagDependency(['tags'=>'customer'])); 

//to flush 
TagDependency::invalidate(Yii::$app->cache, 'customer'); 

당신이 고유 키를 사용할 수 있도록 here

+0

이 당신을 도움이되어 사용할 수 있습니까? @lolka – lalithkumar

+0

정확하게 이해 했습니까? 현재 $ id에 대해 새 TagDependency ([ 'tags'=> 'customer-'. $ id]'를 추가 한 후'TagDependency :: invalidate (Yii :: $ app-> cache, 'customer-' . $ 012). ' – lolka

+0

당신은 그랬습니까? – lalithkumar

관련 문제