phpFastCache — PHP библиотека для кэширования

от автора

Вступление

Я один из тех людей, которые любят предупреждать проблему, нежели решать ее, потому что это менее проблематично. В свободное время я пишу свою CMS и каждый раз стараюсь использовать новые конфетки. На днях на меня напала напасть о том, что кэширования в моей малышке нет. Что это такое и какие преимущества оно дает, думаю, никому объяснять не стоит. Так как пока я познаю азы, для меня предпочтительнее выглядят готовые php-библиотеки. Сегодня я расскажу вам о моем опыте использования phpFastCache (open source PHP-библиотека для кэширования) и о том, что эта библиотека помогла ускорить мой проект в два раза.

Немного о библиотеке

image

phpFastCache — это высоко-производительная система кэширования, предназначенная для ускорения динамических веб-приложений путем снижения нагрузки на базу данных.


Отцом этого детища является Khoa Bui, проживающий в Калифорнии. Первую версию phpFastCache он выпустил 1 января 2011 года. С тех пор поддерживает проект и вносит исправления (последний апдейт 26 июня 2013 года).

Имеется поддержка многих методов кэширования (APC, MemCached, MemCache, Files, PDO и WinCache), а период кэширования можно выставить самому. Все, что вам потребуется это PHP 5.1+.

Как использовать FastCache

Приведу маленький пример с моими комментариями в коде.

<?php     // Подключаем библиотеку     include("php_fast_cache.php");     // Выбор метода кэширования     // phpFastCache поддерживает "apc", "memcache", "memcached", "wincache" ,"files", "pdo", "mpdo" и "xcache"     // Вы не должны делать большие правки кода, когда вы меняете вашу систему кэширования. Вы даже можете просто выставить в свойствах "auto"     phpFastCache::$storage = "auto";      // Инициализация данных     // попробуем получить кэш, если он имеется     $products = phpFastCache::get("products_page");      if($products == null) {         $products = YOUR DB QUERIES || GET_PRODUCTS_FUNCTION;          // отсылаем наш запрос в кеш, 600 = 10 минут         phpFastCache::set("products_page",$products,600);     }      foreach($products as $product) {         // Получившийся ваш контент     } ?> 

Итак, что мы имеем:

$data = phpFastCache::get("keyword") — возвращает нам объект в кэше или NULL.
phpFastCache::set("keyword",$object,600) — мы отправляем объект в кэш, задаем время хранения.
phpFastCache::set("keyword",$object,600,true) — добавим «true» и тогда кэширование не будет производиться, если кэш уже имеется. Также возвращает «true» или «false».

Все это всего лишь малая часть того, что умеет phpFastCache.
Более подробно вы можете ознакомиться с этим проектом на www.phpfastcache.com.

Как это работает

Для начала я решил протестировать маленькую часть. Поставил кэширование на показ полной новости. Выставил метод определения кэширования «auto» и начал следить. Сказать, что результатами я был более, чем доволен — сказать ничего. Ниже приведена статистика по времени загрузки трех разных новостей до использования кэширования и после. Показ полных новостей ускорился почти в два раза!

До

После

Да, более глубокие исследование я просто не в силах провести. Но отбрасывая скорость загрузки страницы и другие факторы, можно утверждать, что в целом библиотека неплоха!

Выводы

В наше время пренебрегать кэшированием не стоит. Используя кэширования мы получаем несомненные плюсы. Библиотека phpFastCache является разумным решением для тех, кто впервые знакомится с такой плюшкой. Или даже для тех, кто давно использует свои наработки/прочие классы и библиотеки для кэширования.

Автор приглашает Вас принять участие в обновлении phpFastCache:
GitHub репозиторий: github.com/khoaofgod/phpfastcache

p.s. Надеюсь моя первая статья будет полезна и информативна. Ошибки в статье высылайте мне в лс, буду благодарен за помощь.

ссылка на оригинал статьи http://habrahabr.ru/post/188828/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *