Кто использует Memcache? Memcache была разработана Danga Interactive для того, чтобы увеличить скорость работы портала LiveJournal.com. Memcache сводит время загрузки из базы данных практически до нуля, от чего растёт скорость загрузки страницы для пользователей, ускоренное управление ресурсами и т.д. На данный момент FaceBook является самым крупным пользователем сервиса Memcache. Учитывая количество людей прибывающих на FaceBook ежедневно, он чуть не завалил данный сервис – и для них выделили отдельное место.
Что такое Memcach?Ну что, интересно стало? Memcache является универсальной системой распределения кэшированных элементов. Если в кэше ничего нет, то делается запрос к базе и результаты записываются в Memcache:
Memcache предоставляет 5 функций:
* get() – извлекает значение по ключу
* set() – устанавливает значение
* add() – добавляет кэш, если его не существует
* replace() – заменяет кэш
* flush() – удаляет все закэшированные данные
Код
Если вы установили у себя Memcache, то вы можете начать им пользоваться. Существует мнение, что много кэша это плохо. Я с этим абсолютно не согласен! Чем быстрее грузится ваш сайт – тем лучше!
* Первые две строки производят подключение к Memcache.
* Далее следует скрипт подключения к базе данных.
* Потом создаём ключ. Когда мы хотим поместить данные в Memcache, то нам необходимо передать 3 элемента для вставки: ключ, значение и время жизни кэша. Ключ необходим для получения доступа к данным. В этом примере вы можете увидеть, что я использую в качестве ключа MD5 хэш запроса.
* Дальше мы проверяем существует ли кэш. Проверка вернёт нам true или false. Если он есть, получаем к нему доступ.
* Если кэша нет, то мы подключаемся к базе и достаём значения. Для создания кэша используем следующее выражение: $memcache->set($key, $row, TRUE, 20); $row хранит массив того, что мы достали из базы. 20 это время жизни в кэша в секундах.
Code
01 $memcache = new Memcache;
02 $memcache>connect('127.0.0.1', 11211) or die ("Could not connect");
03
04 include('includes/connect.php');
05
06 //создать ключ, затем проверить кэш
07 $key = md5("SELECT * FROM memcached_test where name='ashley'");
08 $get_result = $memcache>get($key);
09 if ($get_result) {
10 echo $get_result['name'];
11 echo $get_result['username'];
12 echo "Data Pulled From Cache";
13 }
14 else {
15 // Получить данные из базы и создать кэш
16 $query="SELECT * FROM memcached_test where name='ashley';";
17 $result = mysql_query($query);
18 $row = mysql_fetch_array($result);
19 print_r($row);
20 $memcache>set($key, $row, TRUE, 20); // Хранить результат 20 секунд
21 echo "Data Pulled from the Database";
22 }
Это самый просто пример использования memcache!
Источник урока: www.papermashup.com/using-memcache-with-php/