• Все набагато простіше, ніж здається хто сказав. Кеш, страшне слово, чи все набагато простіше, ніж здається? Мій криворукий спосіб кешування сторінок

    14.08.2021

    На цю думку мене спонукали результати міні аналізу, який я провів зовсім недавно. Я перевірив скільки витрачається SQL запитів у мене на блозі, і на чистому вордпресі, ось що вийшло

    При генерації головної сторінки мого блогу ( Включено всі модулі що є на блозі) скрипт робить 19 запитів. У вордпресу такі ж витрати - 19 запитів до бази даних

    Цифри звичайно можуть бути не точними, але мені не особливо подобається, що мало функціональний двигун ( це я про свій) важче, або на рівні з, багато функціональним.

    Але що вдієш? Позбавиться зайвих запитів видаляючи їх, значить убити геть-чисто весь двигун, хіба не так?

    Що таке php кешування?

    Після проведеного мною аналізу, я почав шукати спосіб вирішення цієї проблеми. Ліки від цієї недуги є, і називається воно кешування.

    Я не дарма назвав замітку Кеш, страшне слово, чи все набагато простіше, ніж здається?Бо слово кеш, мене лякає своєю не зрозумілістю. Ні, я приблизно знаю, що таке кеш, але на підсвідомому рівні думаю, що не все так просто як мені здається.

    За точною інформацією я, природно, поліз в інтернет. Небагато покопав, і як завжди знайшов море розумних і не зрозумілих слів. Мені ось цікавить питання, для кого пишуться ці химерні тексти? Як мені здається для тих хто профі в програмування, а саме для тих, хто не читає матеріал тих, хто їх пише. Хоча я, швидше за все, теж такий, море розумних слів і не зрозуміло, що до чого...Проте я зрозумів одну річ.

    Кешування - це ніщо інше як збереження результату роботи скрипта в окремому файлі, який міститься на сервері. Наступного разу, коли хтось звернеться до цієї ж сторінки, скрипт видасть збережену копію, а не полізе за інформацією в базу даних, тим самим скорочується кількість SQL запитів, а значить підвищується продуктивність.

    Як у принципі я й думав. Але мені все одно здається, що ця інформація не повна або не вірна.

    Коли оновлювати кеш-файл?

    Все це дуже добре, збільшення продуктивності тощо, але є одна маленька проблема. Як повідомити скрипту, що сторінка змінилася, тобто коли оновлювати збережений файл? Все з тих же розумних і незрозумілих слів знайшов два варіанти створення механізму кешування

    • Писатиме алгоритм, який з певним часовим проміжком оновлюватиме копію кешу.
    • Посилати якісь html заголовки, звіряючи з їх допомогою копію сторінки з копією сторінки в кеші, і у випадку різних датоновлювати кеш

    Перший спосіб начебто менш зрозумілий, а ось з другим я так і не розібрався. Та й швидше за все не вдалося б вдатися до цього способу, бо, я так прикинув, у разі порівняння дат у заголовках, доведеться писати спеціальний код, який у певних ситуаціях оновлюватиме ці дати. А мені ліньки писати такий код =)

    Що саме потрібно закешувати?

    Перш ніж вигадувати механізм збереження та оновлення файлів, вирішив подумати над тим, що потрібно кешувати? Зберігати всю сторінку цілком я відразу ж відмовився, може це і найекономніший спосіб, але в цьому випадку відмовить абсолютно всі модулі, які оновлюються з кожним перезапуском сторінки. Подумавши вирішив, що в кеш вирушать усе, що дуже жирне ( занадто багато запитів) і все, що оновлюється раз на 100500 років. Така можливість є, оскільки двигун складається з окремих функцій, результат яких, як правило, html код, який можна зберегти у файл і відправити на сервер.

    Подумавши я вирішив, що відправлю в кеш заголовки, мета теги і майже весь сайтбар ( крім модуля меню) Цього достатньо щоб скоротити запити приблизно вдвічі

    Мій криворукий спосіб кешування сторінок

    Чому криворукий? Тому що спосіб розпізнання застарілих копій занадто "не розумний", до розумнішого способу я не додумався...

    Мета теги, заголовки і модуль постів, що читаються, змінюється не дуже часто, тому їх збережені копії оновлюються раз на годину. Цього не складно досягти, прикладів в інтернеті повно!

    А ось кеш модуля останніх коментарів, опитування та останніх постів оновлюється лише тоді, коли відбудеться зміни в базі даних. Як я визначаю зміни? Все дуже просто і не професійно.

    У корені блогу лежить текстовий файл, в якому знаходиться рядок такого вигляду:

    Мій двигун перетворює цей рядок на масив. Кожна цифра у масиві відповідає за певний модуль.

    • Якщо стоїть нуль, значить кеш модуля застарів і його необхідно замінити
    • Якщо стоїть одиниця, значить кеш є актуальним, і його не потрібно оновлювати.

    Зміни цього рядка проводяться під час додавання посту в базу даних, або додавання коментаря, тим самим двигун розуміє, що кеш потрібно замінити. Чи не правда "криворукий спосіб" а?

    Проте запити на головній сторінці впали до 10-ти, а на сторінках із замітками до 9-ти.

    Досягнув скорочення SQL запитів у двоє, є чому радіти, якщо крім того, що використовується неадекватний спосіб визначення життя файлів.

    Загалом закінчую монолог у надії, що спосіб не такий вже й дурний.

    Всім доброго! До зустрічі!

    Ви будете здивовані, почувши, що наш Всесвіт насправді досить простий - це наші космологічні теорії виявляються невиправдано складними, стверджує один із провідних фізиків-теоретиків світу. Такий висновок може здатися нелогічним: зрештою, щоб зрозуміти справжню складність Природи, доводиться мислити ширше, вивчати речі в більш і дрібніших масштабах, додавати нові змінні рівняння, вигадувати «нову» та «екзотичну» фізику. Коли ми з'ясуємо, що таке темна матерія, отримаємо уявлення про те, де ховаються гравітаційні хвилі - якщо тільки наші теоретичні моделі стануть більш розвиненими і складнішими.

    Це не так, каже Ніл Турок, директор Інституту теоретичної фізики Периметра в Онтаріо, Канада. На думку Турока, якщо Всесвіт, на найбільших і найменших масштабах, про щось нам говорить, то це про свою неймовірну простоту. Але щоб повною мірою це усвідомити, нам потрібна революція у фізиці.

    В інтерв'ю Discovery Турок зазначив, що найбільші відкриття останніх десятиліть підтвердили структуру Всесвіту на космологічних та квантових масштабах.

    «На великих масштабах ми склали карту цілого неба – космічного мікрохвильового фону – і виміряли еволюцію Всесвіту, процес її зміни, процес її розширення… і ці відкриття показують, що Всесвіт вражає простий, – каже він. - Іншими словами, ви можете описати структуру Всесвіту, її геометрію, щільність матерії лише одним числом».

    Найбільш захоплюючий висновок цієї міркування в тому, що описати геометрію Всесвіту лише одним числом простіше, ніж описати чисельно найпростіший з відомих нам атомів - атом водню. Геометрія атома водню описується трьома числами, які з квантових характеристики електрона на орбіті навколо протона.

    «Це говорить нам, що Всесвіт гладкий, але має невеликий рівень коливань, що описується цим числом. І все. Всесвіт – найпростіше, що ми знаємо».

    Десь там, на протилежному кінці масштабу, щось подібне сталося, коли фізики досліджували поле Хіггса, використовуючи найскладнішу машину, яка коли-небудь побудована людьми, - . Коли у 2012 році фізики історично відкрили частинку-посередника поля Хіггса – бозон Хіггса – вона виявилася найпростішим типом, який описує Стандартна модель частинок.

    «Природа використовує мінімальне рішення, мінімальний механізм, який тільки можна уявити, щоб дати частинкам їхню масу, їхній електричний заряд і так далі», - каже Турок.

    Фізики 20 століття навчили нас, що якщо підвищувати точність і заглиблюватися в квантовий світ, ви виявите зоопарк нових частинок. Оскільки експериментальні результати виробляли безліч квантової інформації, теоретичні моделі передбачали ще більше частинок і сил. Але тепер ми досягли роздоріжжя, коли багато наших передових теоретичних ідей про те, що лежить «за межами» нашого поточного розуміння фізики, очікують деяких експериментальних результатів, які підтвердять прогнози.

    «Ми опинилися в дивній ситуації, коли Всесвіт із нами говорить; вона каже нам про те, що вона надзвичайно проста. У той же час теорії, які були популярними (останні 100 років розвитку фізики), стають все більш складними, довільними та непередбачуваними», - каже він.

    Турок вказує на теорію струн, яка була заявлена ​​як «остаточна теорія об'єднання», яка пакує всі таємниці світобудови в акуратне впакування. А також на пошук доказів інфляції – швидкого розширення Всесвіту, яке він пережив майже відразу після Великого Вибуху десь 14 мільярдів років тому – у формі первинних гравітаційних хвиль, вигравіруваних на космічному мікрохвильовому фоні, «луні» Великого Вибуху. Але оскільки ми шукаємо експериментальні докази, то ми хапаємось за соломинку; експериментальні докази просто не узгоджуються з нашими нестерпно складними теоріями.

    Наше космічне походження

    Теоретична робота Турока відведена походженням Всесвіту, темою, яка привернула багато уваги в останні місяці.

    Минулого року колаборація BICEP2, яка використовує телескоп, розташований на Південному Полюсі для вивчення реліктового випромінювання, оголосила про виявлення сигналів первинних гравітаційних хвиль. Це свого роду «святий Грааль» космології – відкриття гравітаційних хвиль, породжених Великим Вибухом, може підтвердити інфляційні теорії Всесвіту. Але, на жаль, для команди BICEP2, вони оголосили «відкриття» ще до того, як європейський космічний телескоп Планка (який теж становить карту мікрохвильового фону) показав, що , а не стародавніми гравітаційними хвилями.

    Що, якщо первинні гравітаційні хвилі ніколи не знайдуть? Багато теоретиків, які покладали свої надії на Великий Вибух із наступним періодом швидкої інфляції, можуть бути розчаровані, але, за словами Турока, «це буде потужним натяком» на те, що Великий Вибух (у класичному розумінні) може не бути абсолютним початком Всесвіту.

    «Найскладніше для мене – це описати сам Великий Вибух математично», – додає Турок.

    Можливо, циклічна модель еволюції всесвіту - коли наш Всесвіт колапсує і починає наново - краще відповідатиме спостереженням. Таким моделям необов'язково виробляти первинні гравітаційні хвилі, і якщо ці хвилі не виявляються, можливо, наші інфляційні теорії потребують поліпшення.

    Щодо гравітаційних хвиль, які, згідно з прогнозами, виробляються швидким рухом масивних об'єктів у нашому сучасному Всесвіті, Турок впевнений, що ми досягли такого ступеня чутливості, що наші детектори повинні незабаром їх виявити, підтверджуючи одне з передбачень Ейнштейна на тему простору-часу. «Ми очікуємо побачити гравітаційні хвилі від зіткнень чорних дірок у найближчі п'ять років».

    Наступна революція?

    Від найбільших масштабів до найдрібніших, Всесвіт здається «безмасштабним» - іншими словами, на який би просторовий чи енергетичний масштаб ви не глянули, немає в масштабах нічого «особливого». І цей висновок говорить на користь того, що у Всесвіту куди простіша природа, ніж припускають сучасні теорії.

    «Це криза, але криза в кращому вигляді», – каже Турок.

    Таким чином, щоб пояснити походження Всесвіту і прийти до угоди з деякими з найбільш загадкових таємниць нашого Всесвіту, на зразок темної матерії та темної енергії, нам, можливо, доведеться зовсім інакше поглянути на космос. Для цього буде потрібний переворот у розумінні фізики, революційний підхід, по силі порівнянний з ейнштейнівським усвідомленням того, що простір і час є двома сторонами однієї медалі, коли була сформована загальна теорія відносності.

    «Нам потрібне зовсім інше уявлення фундаментальної фізики. Настав час для кардинально нових ідей», - робить висновок Турок, відзначаючи, що зараз прекрасний час для молоді займатися теоретичною фізикою, оскільки саме наступне покоління, найімовірніше, переверне наше розуміння Всесвіту.

    Жити набагато простіше, ніж здається


    Розділ 1. На прогулянку.

    Ходімо, прогуляємось!
    Увечері корисно прогулятись.
    Чому не можеш поки що?
    Який ще зубний біль?
    Навіщо вона тобі? Позбався її!
    Так, давай потихеньку витягай її…
    Ось ось…

    Все вона вилетіла у вікно.
    Ну, що, пішли?
    Що заважає?
    Та на півгодини і повернемося!
    Та одягни щось легше! Тепло на вулиці!
    Вечір? Ну і що?
    Та одягай, що хочеш!
    Ну, друга краще!
    Все – не буду більше радити!

    По-моєму, добре!
    Яка різниця, що подумають, ти ж не на звану вечерю йдеш!
    Тоді візьми щось простіше.
    Це що комплекс?
    Ні? Тоді виштовхни його за двері!
    Пішов геть!
    Чудово!
    Ну що ми готові йти?
    Прекрасно!
    Так, чудово виглядаєш!
    Пішли, я зачиню двері.

    Розділ 2. Засинаючи…

    Тобі зручно?
    Що не так?
    Мені дуже зручно, а що в тебе ...
    Розправ простирадло, он загнулася!
    Краще? Чудово!
    Хотіла тобі розповісти одну історію.
    Що знову?!
    Щось із подушкою? Візьми іншу…
    …так ось, історія про те, як…
    Та викинь цю подушку!

    Інша справа.
    Ти мене слухаєш?
    Ця історія про двох…
    Світить? Що світить?
    А! Місяць!
    Ні, я не встану, в брухт…
    Вставай ти!
    Просто задерни штору краще.
    Досить, піде так.
    Більше не треба, лягай…

    Давай спати.
    Що? Я збиралась? Яку історію?
    Ах, точно! Та не пам'ятаю вже…
    Добраніч.

    Розділ 3. Відпочиваючи.

    Вип'єш зі мною кухоль чаю?
    О'кей, я приготую.
    От тримай.
    Чому переживаєш?
    Дрібниці! Викинь це з голови?
    Так то краще!
    Гарний чай.
    Що не дає спокою?
    Невже ця історія так прив'язалася до тебе?
    Звісно, ​​всякі люди бувають.
    Але щоб зациклюватися на кожному слові будь-якої людини…
    З глузду з'їхати можна!
    Слухай мене: що було, було.
    Так, просто тяжкий день.
    Поговоримо краще про щось приємне!
    Дуже гарний чай.

    Глава 4. Ще одна прогулянка.

    Як свіжо на вулиці!
    Так, дощ пройшов.
    Всю ніч барабанив по даху.
    У неділю завжди чудово прогулятися зранку раніше.
    Що кажеш? Боїшся змерзнути?
    Ха! Захворіти?
    Та від цього не хворіють!
    Обережно – у калюжу не наступи!
    Як я потім тебе діставатиму звідти?
    А раптом там глибоко?
    Не смішно?
    А мені кумедно!
    Ха-ха! Як уявлю!
    (Ти плюхаєшся вниз…)
    (я лізу тебе діставати…)
    (ми разом борсаємось у бруді…)
    (намагаємося їй протистояти, а вона нас затягує…)

    А? Що? Ти щось кажеш?
    Пробач, просто задумалася. Хі-хі.
    Усміхалася? Ну, значить, замріялася. Хі-хі.
    Що іржу? Та ось, дивись собака смішний!
    Кудлата така (хі-хі).

    Глава 5. За покупками.

    Що купимо?
    Я хочу багато чого!
    Та мій живіт уже знаєш, як просить?
    Це ще звичайна стадія.
    Скоро так завивати почне!
    Пам'ятаєш, як минулого разу?
    Люди аж кидалися геть – думали, вовки містом блукають.
    О! Візьмемо це?
    Що тебе цього разу не влаштовує?
    Надто калорійне?
    Добре, візьмемо щось інше…
    Так Так. Те що треба!
    Я приготую.
    Да без проблем.

    Що? Що???
    Боїшся отруїтися?
    Не чула, щоб цим можна було отруїтися!
    Ну, даєш! Придумаєш також!

    А що це таке?
    Вперше таке бачу.
    Слухай, поклади-но на місце.
    Не чіпай більше.
    Все, підемо, я думаю, вечеря буде чудовою!
    ???
    У мене достатньо грошей.
    Навіть не хвилюйся з цього приводу.

    Глава 6. Остання, хоча ще довго продовжувати…

    Я повернулася!
    Як смачно пахне!
    (щось готується!)
    Що? А, все гаразд.
    Усі справи улагоджені.
    Ми можемо спокійно поїхати завтра за місто.
    Та не зіпсується погода!
    Ну навіть якщо й зіпсується, то щось придумаємо!
    Що таке готуєш?
    Я вже готова!
    Вже слинки течуть!
    Піду руки помию.

    Як чудово приготовлено!
    Дуже смачно мені подобається!
    Які справи були?
    Я туди прийшла, але щось не пішло.
    І я подумала – ну його! Зібралася йти.
    А воно саме якось вирішилося.
    А там одразу як по маслу покотилося.
    Так, не було жодних проблем…

    Схожі статті