Форум → Программирование → PHP для идиотов → возникли вопросы о кеш машинах
возникли вопросы о кеш машинах
Страницы: ← Следующая страница →
-
Итак, список вопросов:
1) у меня в php.ini отведено 16 мб памяти (memory_limit). Значит ли это, что кеш-машина сможет использовать только вот эти 16 мб?
если ответ на вопрос 1) да, то:
2) что будет, если когда посредством кеш-машины я сохраняю 10 мб, а моему скрипту вдруг внезапно потребовалось 12 мб (12+10 > 16)?
3) что будет, когда кеш-машина начнет выходить за пределы отведенной для нее памяти? Начнется паника и данные из памяти удалятся? Все? случайные записи? записи, которые были сохранены раньше всего (queue)?
если ответ на вопрос 3) да (данные будут удалены), то:
4) можно ли как-то отследить это неприятное событие?
5) какие есть ограничения на длину ключа у кеш-машин?
Прошу отвечать в таком стиле:
кеш-машина xCache: 1) да, 2) да, 3) нет (потому что бла-бла), 4) да
почему я их задаю?
да, найдется умник, который скажет: ну а хуле, поставь все эти кеш-машины, и потестируй. Ребята, их очень много, ставить каждую и на каждой тестить - нет времени. Наверняка же кто-то работал как минимум с какой-то одной. Вот он пусть и напишет. -
4 ноября 2009 г. 18:28, спустя 7 часов 9 минут 5 секунд
Нужно привести все известные мне "кеш-машины" и для всех расписать пункты, или таки назовёте те, которые вас интересуют? -
4 ноября 2009 г. 18:38, спустя 10 минут 5 секунд
vasa_c, со всеми работал?
особый интерес у меня к APC и eAccelerator. Чуть меньше - Memcached. Главное по первым двум знать ответы
ps: Тут же вроде все на "ты"? -
4 ноября 2009 г. 18:46, спустя 8 минут 4 секунды
васяц, распиши для всех которые знаешь. будет статья неплохая. +1 получишь )Сапожник без сапог -
4 ноября 2009 г. 19:09, спустя 22 минуты 39 секунд
+1 ) да, будет интересно почитать )
васяц, распиши для всех которые знаешь. будет статья неплохая. +1 получишь ) -
4 ноября 2009 г. 20:17, спустя 1 час 8 минут 24 секунды
особый интерес у меня к APC и eAccelerator. Чуть меньше - Memcached. Главное по первым двум знать ответы
APC, eAccelerator это одно, а memcached - нечто другоеСпустя 75 сек.http://adw0rd.ru/2009/freebsd-eaccelerator/https://smappi.org/ - платформа по созданию API на все случаи жизни -
4 ноября 2009 г. 20:32, спустя 14 минут 49 секунд
Ну, ставить всё и проверять не обязательно, достаточно для начала почитать документацию.
Я использую memcache, про него и напишу.
APC и eAccelerator же вообще изначально предназначены для кэширования байт-кода, а не данных.1. у меня в php.ini отведено 16 мб памяти (memory_limit). Значит ли это, что кеш-машина сможет использовать только вот эти 16 мб?
Задумываемся над тем, что такое memory_limit. Это максимальная память, которую может захапать отдельный сценарий. Сценарий заканчивается - память освобождается. Все же эти кэши предназначены для доступа из различных процессов, поэтому память конкретного процесса к ним никакого отношения не имеет.
У каждого кэша свои настройки. Читаем доки.
http://danga.com/memcached/ (первый же пример запуска)
http://www.eaccelerator.net/wiki/Settings
http://ru.php.net/manual/en/apc.configuration.php3) что будет, когда кеш-машина начнет выходить за пределы отведенной для нее памяти? Начнется паника и данные из памяти удалятся? Все? случайные записи? записи, которые были сохранены раньше всего (queue)?
Нет, паники не начнётся. Данные будут удалены совершенно спокойно.
По идее те, которые используются меньше всего. А может какие-то другие, а может и даже тогда, когда есть память.
Кэш не должен гарантировать сохранность данных, а наоборот, должен гарантировать их удаление через заданное TTL-время. На то он и кэш - для кэширования промежуточных результатов, которые можно сохранить.
В eAccelerator походу по другому. eaccelerator_put: When false is returned, this could mean the limit of the total cache is exceeded or the size of the data is to big for the eaccelerator.shm_max directive.можно ли как-то отследить это неприятное событие?
Про eAccelerator выше.
А про memcache - зачем и в каком виде? И что делать если удастся?
В кэше не нужно такого. А нужно подобное хранилище с сохранением данных: memcacheDB, redis и т.д.какие есть ограничения на длину ключа у кеш-машин?
У мемкэша, по-моему 250 символов. Можно уточнить в документации, как и для всех остальных.
Хотя если возникают такие вопросы, может вы что-то не совсем так делаете? Зачем слишком большие ключи? -
4 ноября 2009 г. 21:55, спустя 1 час 22 минуты 56 секунд
APC и eAccelerator же вообще изначально предназначены для кэширования байт-кода, а не данных.
однако они офигенски с этим справляются. Побыстрее мемкеша дажеХотя если возникают такие вопросы, может вы что-то не совсем так делаете? Зачем слишком большие ключи?
да не, все нормально. Это я так, перестраховываюсь. Примерный размер ключа у меня будет 32-40 символов хеш + около 12 символов что-то типа тега (что б по регекспу удалять). Некоторые данные будут без хеша, только с тегом.Спустя 23 сек.в общем первый пошел) Спасибо -
4 ноября 2009 г. 22:19, спустя 24 минуты 7 секунд
однако они офигенски с этим справляются. Побыстрее мемкеша даже
еще бы блядь :-DСапожник без сапог -
5 ноября 2009 г. 20:22, спустя 22 часа 3 минуты 15 секунд
Это типа сравнили пушистое с кислым?
однако они офигенски с этим справляются. Побыстрее мемкеша дажеСпустя 243 сек.
По идее те, которые используются меньше всего. А может какие-то другие, а может и даже тогда, когда есть память.
Кэш не должен гарантировать сохранность данных, а наоборот, должен гарантировать их удаление через заданное TTL-время. На то он и кэш - для кэширования промежуточных результатов, которые можно сохранить.
У нас написана специальная обертка над мемкешом, которая раз в N запросов, сохраняет данные в файловый кеш.
Таким образом при падение мемкеша или случайном протухании в нем важных данных они поднимаются снова. В основном это расчитано на аварийное востановление, ибо по идее логики приложения критичные данные не должны пропадать. -
5 ноября 2009 г. 20:51, спустя 28 минут 25 секунд
AlexB, покажи код кешируемый при вашей обертке а?)Спустя 12 сек.в смысле примеры кода где кеш используетсяСапожник без сапог -
6 ноября 2009 г. 0:05, спустя 3 часа 14 минут 24 секунды
+1 )
AlexB, покажи код кешируемый при вашей обертке а?)Спустя 12 сек.в смысле примеры кода где кеш используется
AlexB, очень интересная весчь, на неё глянуть можно? ) -
-
6 ноября 2009 г. 13:17, спустя 15 минут 11 секунд
AlexB, спасибо. посмотрю ближ время :)Сапожник без сапог -
6 ноября 2009 г. 14:09, спустя 51 минуту 51 секунду
Абырвалг, это мне напомнило очаровательный оператор из c#
там можно было бы написать таг.$s['persistent'] = !$s['persistent'] ?? false;
ps: убрал изсет, всегда работаю ~E_NOTICEСапожник без сапог
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!