我需要将redis缓存标记添加到雄辩的模型关系中,例如:
public function children() {
return $this->belongsToMany('table1', 'table2', 'field1', 'field2')->where('field3', 'value')->orderBy('field1', 'asc')->remember(720);
}
但我目前无法在不等待它过期的情况下清除此缓存。我知道可能有一种方法可以为它添加一个缓存名称,可以使用Cache :: forget($ name)清除它,但我想像许多其他条目一样添加相同的缓存标记。
由于
答案 0 :(得分:0)
如果您想使用Redi的标签,请从缓存方法中删除关系方法:
public function children() {
return $this->belongsToMany('table1', 'table2', 'field1', 'field2')->where('field3', 'value')->orderBy('field1', 'asc')->remember(720);
}
public function getChildren() {
return Cache::tags(['tag1', 'teg2])->rememberForever('cacheKey', function() {
return $this->children()->get();
})
}
然后如果你想清除它,请使用Redis的标签选项,如下所示:
Cache::tags('tag1')->flush();