Yii2缓存活动记录

时间:2016-02-28 10:48:30

标签: php yii2

我需要帮助缓存Yii2中的Active Record数据。

在文档中有例子:

$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中缓存,将从缓存中设置值,否则将正确执行查询?

此外,我对依赖关系有疑问,我可以使用什么依赖关系来使此缓存值失效?

1 个答案:

答案 0 :(得分:0)

作为意见!您知道它取决于您添加到缓存存储的数据。如果它是一些静态数据,如状态,位置等,您可以设置第二个参数duration。您可以通过官方doc了解 如果你在页面上做了几个相同的查询,你可以设置1或2秒,这对你有所帮助。