2016-02-28 118 views
1

我需要幫助緩存Yii2中的活動記錄數據。Yii2緩存活動記錄

在文檔中有例子:

$result = Customer::getDb()->cache(function ($db) { 
    return Customer::find()->where(['id' => 1])->one(); 
}); 

我明白,它需要實現模型類中的方法這麼一條:

public static function getByPk($pk) 
{ 
    $result = self::getDb()->cache(function ($db) use ($pk) { 
     return self::find()->where(['id' => $pk])->one(); 
    }); 

    return $result; 
} 

如果該查詢結果已經被緩存在$result將設置值從緩存中,否則會正確執行查詢?

另外我有關於依賴關係的問題,我可以使用什麼依賴關係來使這個緩存值無效?

回答

0

意見!您知道這取決於您添加到緩存存儲的數據。如果它是一些靜態數據,例如狀態,位置等,則可以設置第二個參數duration。你可以在官方doc上閱讀。
如果你在頁面上做了幾個相同的查詢,你可以設置1或2秒,它可以幫助你一點點。