Добрый вечер. Как правильно сохранять кэш в фреймворке? Есть куча тем, знаю, и примеров, но они не внятны и не работают, по крайней мере у меня, видимо что то не так делаю.
Есть ForecastController и в нем метод
protected function cacheGet($keyCache, $dbData){
$cache = \Yii::$app->cache;
$data = $cache->get($keyCache);
if ($data !== $dbData) {
$data = $dbData;
$cache->set($keyCache, $data);
}
return $data;
}
в экшене я его вызываю
public function actionIndex(){
$articlesNew = $this->cacheGet('articlesNewIndex', ForecastArticle::find()->asArray()->orderBy('id desc')->limit(4)->all());
$articles = $this->cacheGet('articlesIndex', ForecastArticle::find()->asArray()->orderBy('id desc')->limit(10)->with('comments')->all());
$countComment = $this->foreachCommentCountIsArticle($articles);
return $this->render('index',
compact(
'articlesNew',
'articles',
'countComment'
)
);
}
Все хорошо сохраняется в кэш, вопросов нет. Но запросы к бд все равно остаются..... Что я делаю не так?
Я уж думаю, может во время добавления статьи из админки сохранять в кэш и дергать только кэш на фронте.