PHP/MySQL | memcached.php - MemCache без расширений
CaMnoCe6e, он и создан изначально для балансировки нагрузки, но это O o P кэш, реальные хайлоад приложения обычно используют in process кэш для снижения оверхеда от мемкэша.
________
посл. ред. 20.04.2019 в 12:11; всего 2 раз(а); by monobogdan
________
посл. ред. 20.04.2019 в 12:11; всего 2 раз(а); by monobogdan
monobogdan, согласен. Поэтому расскажи на примере как использовать то что ты написал)
CaMnoCe6e, кэширование профилей пользователей например:
<?php
function fetchUser($user)
{
if($usr = memcache_get("usr_$user"))
return unserialize($usr);
$usr = mysql_query("SELECT * FROM users WHERE name='$user'");
if($usr)
{
$ret = mysql_fetch_array($usr);
memcache_set("usr_$user", serialize($ret));
return $ret;
}
return null;
}
monobogdan, для оптимизации самое то!) Нужно будет заюзать.
CaMnoCe6e, если есть возможность использовать обычное расширение, лучше использовать его. Мой велик за 10 минут на коленке сделан =)
CaMnoCe6e (20.04.2019 в 12:18)
monobogdan, для оптимизации самое то!) Нужно будет заюзать.
monobogdan, для оптимизации самое то!) Нужно будет заюзать.
Смотря какая стоит задача. Если у тебя к примеру форум, то можно использовать простое кеширование на сервере. Закрытая тема, зачем тащить данные из БД или менкеншена, когда можно просто закешировать страницы и выдать пользователю. Так же не забываем, что менкеншен использует оперативку, если у тебя её мало, то эффективности так же будет мало.
________
посл. ред. 21.04.2019 в 18:03; всего 1 раз(а); by TuT
TuT, стандартный пул memcached - 64мб. Когда пул подходит к пределу, мемкэш запускает сборку мусора и удаляет самый старый кэш, потенциально оставляя новый. Надо очень постараться, чтобы засрать 64мб ОЗУ текстовыми данными(речь конечно же не о хайлоаде, но там и не сидят на VDS 256mb RAM =)).
"Запекание" страниц тоже неплохой вариант, но подходит только для статических данных. Для какой нибудь таблицы рекордов, самое то.
________
посл. ред. 21.04.2019 в 19:10; всего 1 раз(а); by nadgobonom
"Запекание" страниц тоже неплохой вариант, но подходит только для статических данных. Для какой нибудь таблицы рекордов, самое то.
________
посл. ред. 21.04.2019 в 19:10; всего 1 раз(а); by nadgobonom
TuT, с мемкэшем можешь забить на джойны и его ограничения(за которые так любят топить некоторые бумасовцы), поскольку одна единица в кэше - не запрос, а объект.
________
посл. ред. 21.04.2019 в 19:12; всего 1 раз(а); by nadgobonom
________
посл. ред. 21.04.2019 в 19:12; всего 1 раз(а); by nadgobonom
nadgobonom (21.04.2019 в 19:09)
TuT, стандартный пул memcached - 64мб. Когда пул подходит к пределу, мемкэш запускает сборку мусора и удаляет самый старый кэш, потенциально оставляя новый. Надо очень постараться, чтобы засрать 64мб ОЗУ текстовыми данными(речь конечно же не о хайлоаде, но там и не сидят на VDS 256mb RAM =)).
"Запекание" страниц тоже неплохой вариант, но подходит только для статических данных. Для какой нибудь таблицы рекордов, самое то.
TuT, стандартный пул memcached - 64мб. Когда пул подходит к пределу, мемкэш запускает сборку мусора и удаляет самый старый кэш, потенциально оставляя новый. Надо очень постараться, чтобы засрать 64мб ОЗУ текстовыми данными(речь конечно же не о хайлоаде, но там и не сидят на VDS 256mb RAM =)).
"Запекание" страниц тоже неплохой вариант, но подходит только для статических данных. Для какой нибудь таблицы рекордов, самое то.
Все зависит от настройки менкеншана, можно снять ограничения, к примеру хранить месяцами.
Я и описал, что если оперативы мало, то проблемы будут, так как большинство сидит на дешевых VDS. Про кеширование статических страниц, привел пример с форумом, если на форуме тема закрыта, то нафига её тянуть по новой? Да и так же можно все настроить, сколько хранить и так далее.
Но опять же, все это зависит от задачи.
TuT, это монета о двух сторонах. Каких вообще чудес стоит ожидать от слабого VDS? Мемкэш не панацея - но хороший способ оптимизировать приложение при средних нагрузках. Верно и обратное, если у тебя есть 2гб ОЗУ, почему бы не выделить от неё 128мб кэшу? В любом случае, оверхед от общения с мемкэшем будет ощутимо ниже оверхеда от использования SQL в тех же условиях(но это не значит что SQL говно).
Например, на действительно хайлоад сервисах(вроде ВК), от out of process кэширования скорее всего отказались совсем, в угоду быстрым in process кэшам, потому что у них иной жизненный цикл. Можешь посмотреть в темах нульпоста, я там как раз выводил это на обсуждение.
________
посл. ред. 21.04.2019 в 19:26; всего 2 раз(а); by nadgobonom
Например, на действительно хайлоад сервисах(вроде ВК), от out of process кэширования скорее всего отказались совсем, в угоду быстрым in process кэшам, потому что у них иной жизненный цикл. Можешь посмотреть в темах нульпоста, я там как раз выводил это на обсуждение.
________
посл. ред. 21.04.2019 в 19:26; всего 2 раз(а); by nadgobonom