WordPress Transients
-
Когда правильно применять транзитное кеширование?
Например запрос вывести 10 случайных записей — подходящая для этого задача или не стоит заморачиваться? Ведь вытащить кеш — тоже запрос в БД.
И это наверно только актуально, если нет кеш. плагинов. Кешируете ли вы свои запросы к БД?
-
Например запрос вывести 10 случайных записей — подходящая для этого задача
я бы не сказала что особенно подходящая, разве что есть нагрузка дополнительных условий
https://yandex.ru/yandsearch?text=transients%20api
смотрели? примеры, ну и самое главное http://codex.wordpress.org/Transients_APIВедь вытащить кеш — тоже запрос в БД.
фишка транзиентов что оно может и не кешироваться в БД,
если есть обьектный кеш (например memcached или redis) то оно кладется тудаИ это наверно только актуально, если нет кеш. плагинов
каких именно? одно другому не только не мешает, но даже и помогает
Кешируете ли вы свои запросы к БД?
к БД не вижу смысла, в случае VPS/Dedic лучше положиться на штатный mysql query cache (MySQL)
вот вам примерчик моего варианта
$top_posts = get_transient( trans_evo_topposts ); if (!$top_posts) { $top_posts = stats_get_csv( 'postviews', array( 'days' => 8, 'limit' => 50 ) ); set_transient( trans_evo_topposts, $top_posts, 7200); /* attempt to cache a transient for 2 hours */ }
stats_get_csv — функция Jetpack, делает запрос по статистике на wordpress.com, занимает около 800 мс, понятное дело что статистика постоянно не изменяется и тратить 800 мс на это каждый раз нет смысла.
спасибо за отклик;
я бы не сказала что особенно подходящая, разве что есть нагрузка дополнительных условий
я и пытаюсь понять, где та грань, когда стОит применять, а где от этого пользы мало или нет
смотрели? примеры, ну и самое главное
по самому коду вопросов нет (пока)
если есть обьектный кеш (например memcached или redis) то оно кладется туда
т.е. окружение играет значение, если например кто-то плагин будет делать, он ведь не знает где он будет запускаться
к БД не вижу смысла, в случае VPS/Dedic лучше положиться на штатный mysql query cache (MySQL)
ну вот пример с рандомными записями, какой здесь штатный кеш может быть, результат ведь разный каждый раз в этом случае
я и пытаюсь понять, где та грань, когда стОит применять, а где от этого пользы мало или нет
смотреть время выполнения, по-моему так все удаленные запросы должны кешироваться 99.9%
Локальные выборки только в том случае если они будут часто использоваться и время выборки достаточно большое.т.е. окружение играет значение, если например кто-то плагин будет делать, он ведь не знает где он будет запускаться
обычные шаред хостинги тут проигрывают вдвойне.
Во-первых там и на MySQL нагрузка высокая , и query cache гораздо менее эффективен
Во-вторых шареды редко предлагают memcached, или другие средства для variable cachehttps://wordpress.org/plugins/simple-cache/
вот интересный новый плагин, комбинирует кеширование страниц в статику и кеширование обьектов в memcached/redis
Настройки для самых самых маленьких, т.е. вкл/выклКстати включение обьектного кеширования при отсутствии бэкенда у меня привело к белому экрану )
ну вот пример с рандомными записями, какой здесь штатный кеш может быть, результат ведь разный каждый раз в этом случае
именно поэтому мне бы не хотелось его кешировать
Вообще в типичном случае такие запросы и их обработка занимают 5-7 мс,
это сравнительно немного, но нужно смотреть по ситуации.смотреть время выполнения
а чем сами смотрите, типа Query Monitor?
по-моему так все удаленные запросы должны кешироваться 99.9%
в этом случае выгода конечно более очевидная
Во-вторых шареды редко предлагают memcached
мой хостинг предлагает как дополнительную услугу, хотя удобно, есть вдруг надо можно всегда подключить
https://wordpress.org/plugins/simple-cache/
вот интересный новый плагин, комбинирует кеширование страниц в статику и кеширование обьектов в memcached/redisвидел на wptavern ссылку на него, описание конечно ни о чем, никаких техн. деталей, у меня вот cloudflare, там внимательно надо быть с кеш. плагинами
- Тема «WordPress Transients» закрыта для новых ответов.