Сървърната страна основно инсталира memcache на сървърната страна
Memcache използва библиотеката libevent за обработка на сокети, така че трябва да инсталирате и libevent.
Адрес за изтегляне: http://www.monkey.org/~provos/libevent
Адрес за изтегляне на Memcache: http://danga.com/memcached/download.bml
Подробният метод е следният:
1. Първо инсталирайте libevent:
# Тар ZXVF libevent-1.4.6-stable.tar.gz
# ./configure --prefix=/usr
# направи
# направи инсталация
2. Тествайте дали libevent е инсталиран успешно:
# is -al /usr/lib | Греп Либевент
[root@localhost мек]# Is -al /usr/lib | Греп Либевент
lrwxrwxrwx 1 root root 21 дек 30 11:00 libevent-1.4.so.2 -> libevent-1.4.so.2.1.1
-rwxr-xr-x 1 root root 280179 30 дек 11:00 libevent-1.4.so.2.1.1
-rw-r--r-- 1 root root 366946 30 дек 11:00 libevent.a
lrwxrwxrwx 1 root root 26 дек 30 11:00 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.1
-rwxr-xr-x 1 root root 107523 30 дек 11:00 libevent_core-1.4.so.2.1.1
-rw-r--r-- 1 root root 146944 30 дек 11:00 libevent_core.a
-rwxr-xr-x 1 root root 860 30 дек 11:00 libevent_core.la
lrwxrwxrwx 1 root root 26 дек 30 11:00 libevent_core.so -> libevent_core-1.4.so.2.1.1
lrwxrwxrwx 1 root root 27 дек 30 11:00 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.1
-rwxr-xr-x 1 root root 219483 30 дек 11:00 libevent_extra-1.4.so.2.1.1
-rw-r--r-- 1 root root 281326 30 дек 11:00 libevent_extra.a
-rwxr-xr-x 1 root root 867 30 дек 11:00 libevent_extra.la
lrwxrwxrwx 1 root root 27 дек 30 11:00 libevent_extra.so -> libevent_extra-1.4.so.2.1.1
-rwxr-xr-x 1 root root 825 30 дек 11:00 libevent.la
lrwxrwxrwx 1 root root 21 дек 30 11:00 libevent.so -> libevent-1.4.so.2.1.1
3. Инсталирайте memcached и посочете мястото за инсталиране на libevent в инсталацията:
# Тар ZXVF memcached-1.2.6.tar.gz
# ./configure --with-libevent=/usr
# направи
# направи инсталация
След като инсталацията приключи, memcached ще бъде поставен в /usr/local/bin/memcached
4. Тествайте дали memcached е инсталиран успешно:
# Is -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 121261 30 дек 11:02 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 130191 30 дек 11:02 /usr/local/bin/memcached-debug
5. Инсталирайте PHP разширението за Memcache
В http://pecl.php.net/package/memcache избери версията на memcache, която искаш да изтеглиш.
# tar vxzf memcache-2.2.4
# CD memcache-2.2.4
# /usr/local/php/bin/phpize
# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
# направи
# направи инсталация
6. След горната инсталация ще има подсказка като това:
Инсталиране на споделени разширения: "/usr/local/php/lib/php/extensions/no-debug-non-zts-2006xxxx/"
7. Променете extension_dir = "./" в php.ini на
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/"
8. Добавете ред за зареждане на разширението memcache:
extension=memcache.so
9. Стартиране и спиране на Memcache от страна на сървъра:
# /usr/local/bin/memcached -d -m 200 -u root -l 192.168.1.91 -p 12000 -c 1000 -P /tmp/memcached.pid
memcached -m 256 -u www -p 11211 -d
Съответното обяснение е следното:
Опцията -d е да започнеш демон,
-m е количеството памет, отделено на Memcache за използване, в MB, тук 200MB
-u е потребителят, който управлява Memcache, аз съм root тук
-l е IP адресът на сървъра, който слуша, ако има няколко адреса, посочвам IP адреса на сървъра тук 192.168.1.91
-p е портът, където Memcache е настроен да слуша, аз зададох 12000 тук, за предпочитане порт над 1024
Опцията -c е максималният брой едновременни връзки, по подразбиране е 1024, аз я зададох на 256 тук
-P е pid файлът, който е настроен да запазва Memcache, и го запазвам тук в /tmp/memcached.pid
Спрете процеса Memcache:
# Убий 'cat /tmp/memcached.pid'
Могат да се стартират и множество демони, но портовете не могат да се повтарят
10. Рестартиране на Apache
Рестарт на услуга HTTPD
11. Тест на Memcache средата:
Стартирайте следния php файл, ако има изход. Това е тест!, това означава, че средата е успешно изградена.
<?php
$mem = нов Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('key', 'Това е тест!', 0, 60);
$val = $mem->get('ключ');
Ехо $val;
?>
PHP тестов код:
<?php
ini_set("memcache.hash_function", "crc32");
$memcache = нов Memcache;
$memcache->addServer('192.168.1.91', 12000);
$memcache->флеш();
for($i=0; $i<120000; $i++){
$memcache->set($i,
"Здравей, memcache, искам да използвам memcache, ти си добре", 0, 1000);
}
?>
Тестовият код на Perl:
#!/usr/bin/perl
използват Cache::Memcached::Fast;
my $memd = нов Cache::Memcached::Fast({
сървъри => [ { адрес => '192.168.1.91:12000', тегло => 2.5 } ],
});
$memd->flush_all;
for($i=0; $i<120000; $i++){
$memd->set($i, "Здравей, memcache, искам да използвам memcache, добре ли е");
}
$memd = undef;
Perl тук използва Cache::Memcached::Fast модул, а не Cache::Memcached, защото модулът Cache::Memcached::Fast е написан на C, така че модулът perl, тестван от много хора, не е толкова ефективен като php, и това е причината.
|