我需要帮助缓存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
中缓存,将从缓存中设置值,否则将正确执行查询?
此外,我对依赖关系有疑问,我可以使用什么依赖关系来使此缓存值失效?
答案 0 :(得分:0)
作为意见!您知道它取决于您添加到缓存存储的数据。如果它是一些静态数据,如状态,位置等,您可以设置第二个参数duration
。您可以通过官方doc了解
如果你在页面上做了几个相同的查询,你可以设置1或2秒,这对你有所帮助。