Установка Memcached на сервер

Так как в дальнейшем в некоторых записях будет фигурировать кеширование запросов при помощи memcached , то полезно знать что это и как его устанавливать .


И так , что такое Memcached ?

Wiki | memcached — Компьютерная программа, реализующая сервис кэширования данных в оперативной памяти на основе парадигмы распределенной хеш-таблицы.

С помощью клиентской библиотеки (для Perl, PHP, Python, Java и др.) позволяет кэшировать данные в оперативной памяти одного или нескольких из множества доступных серверов. Распределение реализуется путем сегментирования данных по значению хэша ключа по аналогии с гнездами хэш-таблицы. Клиентская библиотека используя ключ данных вычисляет хэш и использует его для выбора соответствующего сервера. Ситуация сбоя сервера трактуется как промах кэша, что позволяет повышать отказоустойчивость комплекса за счет наращивания количества memcached серверов и возможности производить их горячую замену.

В API memcached есть только базовые функции: выбор сервера, установка и разрыв соединения, добавление, удаление, обновление и получение объекта. Для каждого объекта устанавливается время жизни, от 1 секунды до бесконечности. При переполнении памяти более старые объекты автоматически удаляются. Для PHP также есть уже готовые библиотеки PECL для работы с memcached, которые дают дополнительную функциональность.

Установка на Debian —
apt-get memcached php5-memcache

Установка на FreeBSD —
http://www.skillz.ru/dev/freebsd/article-Nastraivaem_PHP_MemCached.html

Установка под Windows , Denwer —
http://phpcookbook.bigstreet.ru/topic/266/

Установили , что бы проверить все ли работает достаточно создать файлик в директории сайта и там прописать следующие —

<?php
 
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect");
 
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";
 
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
 
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";
 
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";
 
var_dump($get_result);
 
?>

Обновляя страницу , данные должны меняться .

В следующих записях , будем постепенно убирать мало важные запросы в кеш , при помощи АПИ .

Установка Memcached на сервер: 29 комментариев

  1. Grimmjow3011

    Обесните незнающему английский как ето ставить?

  2. webnet Автор записи

    Еп Вашу мать . Не зная англиского хочешь и конфетку съесть и наху* сесть ?
    Иди учи .

  3. Grimmjow3011

    Капец чо нет такого как на денвер(

  4. Grimmjow3011

    как во службах удалять я неправельнфый путь задал((
    как удалить?

  5. Hannnn

    Спс Webnet,
    Хоть я себе его уже дано поставил….
    Теперь поскорей бы ЗАПРОСЫ кешить!
    PS:Перемены сразу видно Рам Памяти сразу меньше хавает!

  6. Hannnn

    Webnet
    А будет ли Мануэль по установке PHP accelerator?
    А то у мня лично с ним работать не получилось,как только ставлю сразу на сайт не могу зайти тупо белаю страница(Сервер перезапускал)

  7. webnet Автор записи

    Мануалов по установке софта на Win оси вообще в преть не будет .
    Ибо я с ними не работаю , а извращаться и что то делать для статьи , нету времени .

  8. NeoN

    Почему именно Memcached? Личная практика или что-то ещё?

  9. webnet Автор записи

    АнимеКлаб и ТоррентТрекеРу на нем работаут . Результаты весьма не плохие .
    Да и в использование он прост .

  10. Hannnn

    и сайт ЛостФильм.Тв тоже на нем так там когда выходит очередная серия ЛОСТ так воообще нагрузка ого гого

  11. defr

    Вот у меня вопрос…. у меня ВПС и фрибсд и там в установке написано .

    Устанавливаем сервер memcached

    cd /usr/ports/databases/memcached

    Тока я вот не понимаю что эта строка означает и что делать:
    make && make install && make clean

  12. drug

    А разве там в php.ini не надо не чего прописывать для запуска?

  13. drug

    И надо бы написать людям более точно имеется ввиду кто пользуется линуксом.Прописать надо для его запуска и чтоб автоматом включался мемкеш(создать в init.d)Напишите пожалуйста подробнее, а то многим не понятно.

  14. webnet Автор записи

    Под линуксом весь софт установленный из пакетов , настраивается автоматом .
    По этому , пихать что либо в php.ini не требуется !!!
    Для запуска и остановки сервера используются следующие команды —

    /etc/init.d/memcached start

    /etc/init.d/memcached stop

    /etc/init.d/memcached restart

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

  15. Wolverine

    А как на хостинг это поставить?
    С хостером договариваться? ❓

  16. Hannnn

    webnet Ну что когда будем запросы кешить? 😥 😆 :mrgreen: 😉 ❓

  17. drug

    webnet народ просит кешить запросы.Пожалуйста. 🙁

  18. Wolverine

    Можно попробовать, но хостеру как-то быстрее будет :mrgreen:

  19. Уведомление: Оптимизация трекера – сообщеньки ! | Типо блог webnet`а !

  20. procs

    Что за ошибка при запуске файла с тем кодом что ты дал для проверки работы.

    Warning: Memcache::connect() [memcache.connect]: Can’t connect to 127.0.0.1:11211, Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера. (10060) in Z:\home\localhost\www\dark\hh.php on line 4
    Could not connect

  21. Farboud

    у меня по какой то причине данные не обновляются в тестовмо скрипте, выводит только это
    Server’s version: 1.2.1
    Store data in the cache (data will expire in 10 seconds)
    Data from the cache:
    object(stdClass)#3 (2) { [«str_attr»]=> string(4) «test» [«int_attr»]=> int(123) }
    поставил его на апач +мускул +пхп
    непойму никак почему не обновляется!

  22. Farboud

    у меня по какой то причине данные не обновляются в тестовмо скрипте, выводит только это
    Server’s version: 1.2.1
    Store data in the cache (data will expire in 10 seconds)
    Data from the cache:
    object(stdClass)#3 (2) { [«str_attr»]=> string(4) “test” [«int_attr»]=> int(123) }
    поставил его на апач +мускул +пхп
    непойму никак почему не обновляется! 🙂

Комментарии запрещены.