Комментарии 19
а что будет если нужно прочитать параллельно из несколько десятков файлов?
я видел человека, который как-то сделал файл-хостинг без базы данных — все хранилось в генерируемых php файлах, в итоге у него валились винты
я видел человека, который как-то сделал файл-хостинг без базы данных — все хранилось в генерируемых php файлах, в итоге у него валились винты
0
Скорость работы файлового кеша будет очень сильно зависеть от быстродействия жестких дисков и активности файловых операций (особенно актуально, если используется shared-хостинг). Во всяком случае, RAM быстрее RAID'ов.
-1
угу, вот только если файлов станет несколько десятков тысяч, или под полсотни тысяч, да еще и мелких…
цифр не дам, но у меня когдато такое было, мемкешед (локальный) был намного эффективнее.
цифр не дам, но у меня когдато такое было, мемкешед (локальный) был намного эффективнее.
0
думаю, кому-то пригодится. для мелких проектов.
но с другой стороны зачем на мелких проектах кеш?
но с другой стороны зачем на мелких проектах кеш?
0
Но доля правды в этом посте есть… Есть проект с достаточно большой посещаемостью (примерно 40-50 тысяч пользователей в сутки, которые проводят на сайте от 15 минут до целого дня) который полностью работает на файлах и не использует ни одной БД.
+1
Если делать файловый кеш, то хорошо бы сразу применить кеш-контроллер с концепцией фронтэнд-бекенд, как например в Zend Cache. Фронтэнд — это постоянный интерфейс для программиста, бекенд может быть любым (файлы, memcached, APT, XCache...)
+1
если будет много записей, а не одна, то всё равно обращения к винту будут (на запись), что будет много медленнее записи в оперативку.
А вообще у нас пока у самих рамдиск и на него файлокэши сохраняются. Но собираемся переходить на memcache — оно как-то получше в свете наших дальнейших развитий выглядит.
А вообще у нас пока у самих рамдиск и на него файлокэши сохраняются. Но собираемся переходить на memcache — оно как-то получше в свете наших дальнейших развитий выглядит.
0
Если под линуксом, то проще ли использовать tmpfs в оперативке.
Работать можно как с обычными файлами, и ничего выдумывать не надо.
Работать можно как с обычными файлами, и ничего выдумывать не надо.
0
С memcache тоже все непросто, при хабраэффекте легко упираемся в дедлоки. Я так решаю эту проблему: Победить дедлоки memache в php
0
при кеше в файлах я этот вопрос решал нежестким временем жизни кеша.
например так:
$livetime = 600 + mt_rand(0, 300); // время кеша от 600 до 900 секунд
т.о. тяжелые запросы в БД генерили только 1-3 юзера, при посещении 300 запросов в сек.
в memcached так не получится, т.к. время жизни задается сразу и его нельзя поменять,
но можно выкрутиться, например считать кеш старым не по времени, а по вероятности:
$isCacheValid = mt_rand(1,1000) == 500;
например так:
$livetime = 600 + mt_rand(0, 300); // время кеша от 600 до 900 секунд
т.о. тяжелые запросы в БД генерили только 1-3 юзера, при посещении 300 запросов в сек.
в memcached так не получится, т.к. время жизни задается сразу и его нельзя поменять,
но можно выкрутиться, например считать кеш старым не по времени, а по вероятности:
$isCacheValid = mt_rand(1,1000) == 500;
0
А ещё можно писать так:
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Когда файлы не хуже, чем memcached