Всем доброго времени суток! Спасибо что читаете данный блог Я слишком редко обновляю свой дневник, но сегодня я просто не могу не написать пару строк о том, как же я опростоволосился при разработке механизма кэширования на своем блоге.
Я уже писал свои размышления по поводу данного механизма вот в этой статье. И именно там я подчеркнул, что механизм (а именно алгоритм) кэширования на блоге извращенный и позорный
Да так оно и есть! Но до сегодняшнего дня я не мог от него отказаться, ибо других идей (алгоритмов) у меня не было, а данный механизм хоть через опу но работал!
В поддержку этого поста: 99% блогеров создают блоги для извлечение из него прибыли. Способов сделать это много, и я готов поспорить, что Вы уже начитались подобной литературы. Но на каждом блоге, тематика которого монетизация сайтов, можно почерпнуть что-то новое, так что читайте много и не забвывайте делится своим опытом
И вот сегодня, часть моего модуля кэширование отправилось на свалку. Та часть которая отвечала за сброс кэша только в том случае если изменялись какие либо данные в базе данных (кто-нибудь добавил новый комментарий, или, например, я опубликовал новый пост).
Напомню. Данная часть модуля работала по следующему извращенному способу. В корне блога лежал текстовой файл в котором я хранил вот такой текст:
1|1|0|0|0|1
Каждое число было привязано к определенному модулю. Например самое первое число отвечало за модуль последних комментариев. Если число равно нулю то скрипт обновит кэш. Если же число равно единице, то скрипт понимал, что кэш актуален, и его не надо обновлять.
Во время добавления комментария, или, например, добавление нового поста в базу данных, модуль кэширования правил данный текстовой файл, что бы сообщить движку о том, что кэш устарел и его надо обновить. Очень не адекватный способ распознать нужно ли обновить кэш или нет
Но, совершилось чудо, данный геморрой отправился в корзину! Мне приснился (да, да! Именно приснился) способ до которого я сразу не додумался! Этот способ на столько прост, что мне захотелось завязать со своей деятельностью на всегда.
После избавления модуля от функционала распознавать время обновления файлов через опу, остались функции позволяющие сохранять файлы кэша на определенное время (например на час, или на неделю). Способ заключается в том, что бы при добавление какой либо записи в базу данных, движку передавалась команда удалить файл кэша, и все!
Как я сразу не догадался, что проще всего просто удалить устаревший файл на месте, а не ковыряться с алгоритмом который помог бы узнать изменилось ли что-то в базе данных или нет?
В общем механизм я поправил, и радуюсь как дитя. Печален лишь тот факт что данная идея на столько проста, что должна была сразу придти мне в голову, а не спустя несколько месяце
Всего Вам наилучшего! У меня все!