воскресенье, 22 мая 2011 г.

Как установить Memcached на CentOS 5.6


Memcached  - это основная система кэшировния памяти, предназначенная для интернет ресурсов, которые используют одни и те же данные по многу раз, эти данные заносятся в RAM для того, чтобы уменьшить время доступа к данным. Memcached предоставляет большую таблицу хэшей(которые могут быть расспространены среди многих машин).
 Memcached использует client-server архитектуру. Сервера хранят данные в виде ключ-значение (ключ размером до  250 bytes и значение ключа до 1 MB в размерах),  запрос значения кешированных данных проходит по ключу.


В этой статье я покажу, как установить  на CentOS 5.6 с исходных кодов.
Скачиваем и расспаковываем необходимые RPM пакеты
Зарегистрируйтесь в системе под пользователем root и перейдите в директорию и загрузите следующие RPM пакеты: 

cd /usr/src
wget http://www.monkey.org/~provos/libevent-2.0.10-stable.tar.gz
tar –zxvf libevent-2.0.10-stable.tar.gz
wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
tar -zxvf memcached-1.4.5.tar.gz
wget http://pecl.php.net/get/memcache-2.2.6.tgz
tar -zxvf memcache-2.2.6.tgz

Установка Libevent
cd /usr/src/libevent-2.0.10-stable
./configure
make
make install

Установка сервера Memcached
./configure
make
make install
Проверяем правильность установки  (для 64 bit)
Проверте, если не работает необходимо добавить симольную ссылку.
memcached –h
ln –s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
Запускаем сервер Memcached 

memcached -d -u nobody -m 1024 -l 127.0.0.1 -p 11000
Установим клиент Memcache

cd /usr/src/memcache-2.2.6
phpize
./configure
make
make install
Перезапустим Apache 

service httpd restart
Проверочный PHP код

  <?php
   function get_userinfo() {
     $user = array(
      'login' => 'viktor',
      'pass' => 'password'
     );
     return $user;
    }
    
    $memcache = new Memcache;
    $memcache->connect('localhost', 11000);
     
    $user_object = $memcache->get('user');
    if (! $user_object) {
      $user_object = get_userinfo();
      $memcache->set('user', $user_object, false, 30);
      echo 'Stored data in the cache (data will expire in 30 seconds)';
    }
    else {
      echo 'Data retrieved from cache';
    }
?> 

   
    


1 комментарий:

  1. Код не заработал пока я не установил PECL и библиотеку memcache c PECL.

    ОтветитьУдалить