imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 11.08.2004, 16:22     # 1
Sheryld
Full Member
 
Регистрация: 29.05.2002
Сообщения: 544

Sheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царстве
Cache solutions on php4/5

Господа, а какие решения имеются для кеширования в php. Интересуют общие плюсы и минусы решений. Кто что применял, что можно почитать...

Я имею ввиду не только конкретную реализацию, но и общий механизм.
__________________
убрано по просьбе администратора
Sheryld вне форума  
Старый 11.08.2004, 18:35     # 2
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Цитата:
Господа, а какие решения имеются для кеширования в php
Zend Optimizer, Turck MMCache в основном используются.
RaZEr вне форума  
Старый 11.08.2004, 20:13     # 3
Sheryld
Full Member
 
Регистрация: 29.05.2002
Сообщения: 544

Sheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царстве
но это у провайдера, а если нужно реализовать кеширование самому?

p.s. смотрел PEAR, слишком наварочено...
__________________
убрано по просьбе администратора
Sheryld вне форума  
Старый 11.08.2004, 20:22     # 4
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Цитата:
а если нужно реализовать кеширование самому?
Это довольно общая задача. Принцип я думаю ты знаешь, а конкретные советы можно дать только имея на руках конкретную задачу.
RaZEr вне форума  
Старый 11.08.2004, 21:53     # 5
Sheryld
Full Member
 
Регистрация: 29.05.2002
Сообщения: 544

Sheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царстве
я просто сейчас буду заниматься крупным проектом на php. и вот думаю как лучше реализовать кеширование.

т.е. я хочу сделать так, чтобы сервер не генерировал каждый раз все страницы заново, а выдавал их из кеша.

но в php нету грамотных механизмов(скажем как на ASP.NET) для подобного кеширования.

пример. человек "ходит" по страницам. большая вероятность того, что пока он перемещается(несколько минут) контент в базе не изменится, так зачем же каждый раз выдавать ему одни и те же данные("собирая" их).

на ум приходит генерация в html при изменении базы(отдельных файлов). т.е. будет примерно следующее:

набор файлов(сгенерированные страницы):

news.html
catalog.html
links.html

допустим кто-то меняет таблицу links в бд, автоматом создается новый файл links.html. отсальные файлы не меняются.

пользователи получают страницы исключительно из кеша(кроме динамики).

а как в таком случае быть с ситуацией скажем такой:

пользователь сделал запрос, а в это время генерируется новая страница(из-за изменения в бд), значит пользователю попадет либо устаревшие данные, либо вообще будет какая-нибудь ошибка доступа. можно ли как-нибудь наложить монопольный доступ к файлу определенным процессом(наверное это будет mysql?). или это происходит автоматически? и что в этом случае произойдет?

вобщем не совсем ясно возможно ли создать(а может есть уже готовый) механизм разрешения подобных сложностей или может вообще отказаться от такого кеширования в пользу другого решения.

можно было бы например кешировать данные, которые зпросил пользователь в той же сессии(фу бяка), но опять же возникает вопрос: как отлавливать изменение бд и данных в сессии конкретного пользователя(каждый раз проверять сверяться с бд - накладно), а чего-нибудь вроде callback-функции на аткое событие нету(вообще событий нету).

p.s. кстати я как-то делал такую штуку. поиск. первый раз происходит выборка всех данных(и запись в файл сессии), а затем при постраничном выводе данные берутся уже оттуда, но проблему с обновлением данных я таки не решил...
__________________
убрано по просьбе администратора

Последний раз редактировалось Sheryld; 11.08.2004 в 21:58.
Sheryld вне форума  
Старый 11.08.2004, 22:07     # 6
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Вообще по логике вещей, без динамики будет сложно. Банальный набор документов (напр. статей) при выводе нужно прогнать через:
- Язык
- Стилизация
- Настройки системы
- Настройки пользователя

Если я исправил 1 шаблон, то прийдется перегенерировать все его вхождения. И не дай бог это чаще всего меняемые header и footer.

Я обычно кэширую только cpu-critical действия. Серьозная обработка текста (раскраска кода напр.), работа с графикой и т.д. С остальным сервер в легкую справляется.
RaZEr вне форума  
Старый 11.08.2004, 22:46     # 7
Sheryld
Full Member
 
Регистрация: 29.05.2002
Сообщения: 544

Sheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царстве
а не обязательно хранить все страницы целиком, их можно потом собирать из кусков. как вариант генерируем шаблоны из бд, а потом вставляем их в другие шаблоны. хотя опять же возникает гемор и путаница
__________________
убрано по просьбе администратора
Sheryld вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 02:42.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.