Странности с memcached
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Странности с memcached
Ткните конкретно носом как закешировать данные чтобы ими можно было свободно впоследствии манипулировать через ActiveDataProvider? Закешировать именно объект, а не фрагмент страницы!
Yii2!
Re: Странности с memcached
не читал внимательно тему выше, но попробую подсказать. вдруг поможет.
в 1.1 датапровайдер кешировали так:
возможно и к 2.0 применимо что то похожее.
в 1.1 датапровайдер кешировали так:
Код: Выделить всё
return new CActiveDataProvider($this->cache(), array(
'criteria'=>$criteria,
));
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Странности с memcached
может как то так?
Код: Выделить всё
$duration = 60; // cache query results for 60 seconds.
$dependency = ...; // optional dependency
$result = $db->cache(function ($db) {
return new ActiveDataProvider([
'query' => StatsSearch::find()
->with(['ipCommentContent'])
->excluded()
->select('COUNT(`uid`) AS count, `uid`')
->groupBy('uid')
->orderBy(['count' => SORT_DESC])
->limit(\Yii::$app->config->get('GENERAL.ACTIVE_PER_PAGE')),
'pagination' => false,
]);
}, $duration, $dependency);
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Странности с memcached
Попробовал так:
Все так же как и при предыдущем варианте
Код: Выделить всё
$urlDataProvider = StatsSearch::getDb()->cache(function ($db) {
return new ActiveDataProvider([
'query' => StatsSearch::find()
->excluded()
->select('COUNT(`url`) AS count, `url`')
->groupBy(['url'])
->orderBy(['count' => SORT_DESC])
->limit(\Yii::$app->config->get('GENERAL.ACTIVE_PER_PAGE')),
'pagination' => false,
]);
});
Yii2!
Re: Странности с memcached
Вам нужно закешировать только объект ActiveDataProvider без каких либо данных из базы?vitalik1183 писал(а):Ткните конкретно носом как закешировать данные чтобы ими можно было свободно впоследствии манипулировать через ActiveDataProvider? Закешировать именно объект, а не фрагмент страницы!
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Странности с memcached
Просто дело в том, что выборка очень тяжелая. Мне и пагинатор по сути не нужен. На одной странице несколько ListView. Просто дело в том, что я вывожу все через ListView а он принимает только DataProvider на входе. Мне нужно чтобы выборки из базы кешировались, ибо если каждый менеджер начнет заходить на эту страницу, а в бд предполагается до 5млн записей - база просто напросто умрет.
Yii2!
Re: Странности с memcached
ну правильно, тогда вам достаточно в конфиге прописать(как в линке, что я выше привел)
enableQueryCache => true,
queryCacheDuration => 3600
и все, ваши данные из базы будут кешироваться автоматически, и не важно, что это будет DataProvider или единичные запросы из базы, и спокойно пользуйтесь ими как хотите
enableQueryCache => true,
queryCacheDuration => 3600
и все, ваши данные из базы будут кешироваться автоматически, и не важно, что это будет DataProvider или единичные запросы из базы, и спокойно пользуйтесь ими как хотите
Re: Странности с memcached
это общий случай. а хотелось бы наверное делать это с какими то конкретным зависимостями по месту.astronin писал(а):ну правильно, тогда вам достаточно в конфиге прописать(как в линке, что я выше привел)
enableQueryCache => true,
queryCacheDuration => 3600
и все, ваши данные из базы будут кешироваться автоматически, и не важно, что это будет DataProvider или единичные запросы из базы, и спокойно пользуйтесь ими как хотите
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Странности с memcached
astronin вроде ага, работает.
Но, конечно, как сказал Demon_id хотелось бы регулировать такое ручками, а то порой не все в кеш пихать нужно!
А как тогда очищать кеш? Вот например принудительно хочу щас почистить? Раньше flush срабатывал а сча ессно это не воркает.
Но, конечно, как сказал Demon_id хотелось бы регулировать такое ручками, а то порой не все в кеш пихать нужно!
А как тогда очищать кеш? Вот например принудительно хочу щас почистить? Раньше flush срабатывал а сча ессно это не воркает.
Yii2!
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Странности с memcached
Неа, прописал строчки - опять 2-3 минуты и кеш тютю. Что и с бывшим вариантом!!!!!!! Еперный театр...
Yii2!
Re: Странности с memcached
а покажите ошибку из сообщения, поидее это должно работать без проблем
http://www.yiiframework.ru/forum/viewto ... 20#p134459
и у вас MySQL стоит?
http://www.yiiframework.ru/forum/viewto ... 20#p134459
и у вас MySQL стоит?
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Странности с memcached
Ошибок нет, просто данные то кешируются, то кеш самопроизвольно пропадает. Причем никто не сбрасывает его.
Да, mysql
Да, mysql
Yii2!
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Странности с memcached
Остановил memcached
Поставил enableQueryCache = false
Смотрю запросы - при первом заходе по полной программе. При втором 3 запроса. Дык это как понять, memcached сам включился или данные в мемкеш чистый упали?
Поставил enableQueryCache = false
Смотрю запросы - при первом заходе по полной программе. При втором 3 запроса. Дык это как понять, memcached сам включился или данные в мемкеш чистый упали?
Yii2!
Re: Странности с memcached
а в конфиге какой класс прописан для кеширования?
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Странности с memcached
Код: Выделить всё
'cache' => [
'class' => 'yii\caching\MemCache',
'useMemcached' => true
],
Yii2!
Re: Странности с memcached
а настройки выставленны корректные?
'servers' => [
[
'host' => 'server1',
'port' => 11211,
'weight' => 60,
],
'servers' => [
[
'host' => 'server1',
'port' => 11211,
'weight' => 60,
],
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Странности с memcached
Код: Выделить всё
'cache' => [
'class' => 'yii\caching\MemCache',
'useMemcached' => true,
'servers' =>
[
'host' => 'localhost',
'port' => 11211,
'weight' => 100,
],
],
Yii2!
Re: Странности с memcached
ну запросы не могут просто так исчезать, может перезатирается конфиг? а aps какого-то не установлено случайно? пересмотрите настройки, что-то не так выставлено
Последний раз редактировалось astronin 2015.03.03, 09:21, всего редактировалось 1 раз.
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Странности с memcached
Счас поставлю все на чистый виртуал. Глянем как там, может на дедике чего конфликтует.
Yii2!