Серверна сторона переважно встановлює memcache на серверній стороні
Memcache використовує бібліотеку libevent для обробки сокетів, тому також потрібно встановити libevent.
Адреса для завантаження: http://www.monkey.org/~provos/libevent
Адреса завантаження Memcache: http://danga.com/memcached/download.bml
Детальний метод виглядає так:
1. Спочатку встановіть libevent:
# tar zxvf libevent-1.4.6-stable.tar.gz
# ./configure --prefix=/usr
# зробити
# зробити встановлення
2. Перевірте, чи успішно встановлено libevent:
# Is -al /usr/lib | Греп Лібевент
[root@localhost м'яко]# ls -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 кореневий корінь 280179 30 грудня 11:00 libevent-1.4.so.2.1.1
-rw-r--r-- 1 кореневий корінь 366946 30 грудня 11:00 libevent.a
lrwxrwxrwx 1 корінь 26 грудня 30 11:00 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.1
-rwxr-xr-x 1 кореневий корінь 107523 30 грудня 11:00 libevent_core-1.4.so.2.1.1
-rw-r--r-- 1 кореневий корінь 146944 30 грудня 11:00 libevent_core.a
-rwxr-xr-x 1 корінь 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 корінь 27 грудня 30 11:00 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.1
-rwxr-xr-x 1 корінь 219483 30 грудня 11:00 libevent_extra-1.4.so.2.1.1
-rw-r--r-- 1 кореневий корінь 281326 30 грудня 11:00 libevent_extra.a
-rwxr-xr-x 1 корінь 867 30 грудня 11:00 libevent_extra.la
lrwxrwxrwx 1 корінь 27 грудня 30 11:00 libevent_extra.so -> libevent_extra-1.4.so.2.1.1
-rwxr-xr-x 1 корінь 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 у інсталяції:
# tar 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 корінь 121261 30 грудня 11:02 /usr/local/bin/memcached
-rwxr-xr-x 1 кореневий корінь 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 корінь -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('ключ');
Echo $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, і саме тому це пояснюється.
|