|
|
Postat pe 05.10.2014 23:16:39
|
|
|

Partea de server instalează în principal memcache pe partea de server
Memcache folosește biblioteca libevent pentru procesarea socket-urilor, deci trebuie să instalezi și libevent.
Adresa de descărcare: http://www.monkey.org/~provos/libevent
Adresa de descărcare Memcache: http://danga.com/memcached/download.bml
Metoda detaliată este următoarea:
1. Instalează libevent mai întâi:
# Tar ZXVF libevent-1.4.6-stable.tar.gz
# ./configure --prefix=/usr
# fă
# fă instalarea
2. Testează dacă libevent este instalat cu succes:
# ls -al /usr/lib | grep libevent
[root@localhost soft]# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 21 Dec 30 11:00 libevent-1.4.so.2 -> libevent-1.4.so.2.1.1
-rwxr-xr-x 1 root root 280179 Dec 30 11:00 libevent-1.4.so.2.1.1
-rw-r--r-- 1 rădăcină rădăcină 366946 30 decembrie 11:00 libevent.a
lrwxrwxrwx 1 rădăcină 26 Dec 30 11:00 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.1
-rwxr-xr-x 1 rădăcină 107523 30 decembrie 11:00 libevent_core-1.4.so.2.1.1
-rw-r--r-- 1 rădăcină 146944 Dec 30 11:00 libevent_core.a
-rwxr-xr-x 1 root root 860 Dec 30 11:00 libevent_core.la
lrwxrwxrwx 1 rădăcina rădăcină 26 Dec 30 11:00 libevent_core.so -> libevent_core-1.4.so.2.1.1
lrwxrwxrwx 1 rădăcina rădăcină 27 Dec 30 11:00 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.1
-rwxr-xr-x 1 rădăcină 219483 30 decembrie 11:00 libevent_extra-1.4.so.2.1.1
-rw-r--r-- 1 rădăcină rădăcină 281326 30 Dec 11:00 libevent_extra.a
-rwxr-xr-x 1 root root 867 Dec 30 11:00 libevent_extra.la
lrwxrwxrwx 1 rădăcina rădăcină 27 Dec 30 11:00 libevent_extra.so -> libevent_extra-1.4.so.2.1.1
-rwxr-xr-x 1 rădăcina 825 30 decembrie 11:00 libevent.la
lrwxrwxrwx 1 root root 21 Dec 30 11:00 libevent.so -> libevent-1.4.so.2.1.1
3. Instalează memcache și specifică locația de instalare a libevent în instalare:
# Tar ZXVF memcached-1.2.6.tar.gz
# ./configure --with-libevent=/usr
# fă
# fă instalarea
După finalizarea instalării, memcached va fi plasat în /usr/local/bin/memcached
4. Testează dacă memcached-ul este instalat cu succes:
# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 121261 Dec 30 11:02 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 130191 Dec 30 11:02 /usr/local/bin/memcached-debug
5. Instalează extensia PHP pentru Memcache
În http://pecl.php.net/package/memcache, selectează versiunea de memcache pe care vrei să o descarci.
# 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
# fă
# fă instalarea
6. După instalarea de mai sus, va apărea un prompt de genul acesta:
Instalarea extensiilor partajate: "/usr/local/php/lib/php/extensions/no-debug-non-zts-2006xxxx/"
7. Schimbarea extension_dir = "./" din php.ini
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/"
8. Adaugă o linie pentru a încărca extensia memcache:
extensie=memcache.so
9. Pornește și oprește Memcache pe partea de server:
# /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
Explicația relevantă este următoarea:
opțiunea -d este să începi un daemon,
-m este cantitatea de memorie alocată către Memcache pentru utilizare, în MB, aici 200MB
-u ești utilizatorul care rulează Memcache, eu sunt root aici
-l este adresa IP a serverului care ascultă, dacă există mai multe adrese, specific aici adresa IP a serverului 192.168.1.91
-p este portul unde Memcache este setat să asculte, eu am setat 12000 aici, preferabil un port peste 1024
Opțiunea -c este numărul maxim de conexiuni concurente care rulează, implicit este 1024, eu o setez aici la 256
-P este fișierul pid setat să salveze Memcache, iar eu îl salvez aici în /tmp/memcached.pid
Oprește procesul Memcache:
# ucide 'pisică /tmp/memcached.pid'
Se pot porni și mai mulți daemoni, dar porturile nu pot fi repetate
10. Repornește Apache
service httpd restart
11. Testul mediului Memcache:
Rulează următorul fișier php, dacă există o ieșire. Acesta este un test!, înseamnă că mediul este construit cu succes.
<?php
$mem = noul Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('cheie', 'Acesta este un test!', 0, 60);
$val = $mem->get('cheia');
Echo $val;
?>
Cod de test PHP:
<?php
ini_set("memcache.hash_function","CRC32");
$memcache = noul Memcache;
$memcache->addServer('192.168.1.91', 12000);
$memcache->flush();
pentru($i=0; $i<120000; $i++){
$memcache->set($i,
"Salut Memcache, vreau să folosesc Memcache, ești bun", 0, 1000);
}
?>
Codul de test al lui Perl:
#!/usr/bin/perl
folosește Cache::Memcached::Rapid;
my $memd = new Cache::Memcached::Fast({
servere => [ { adresă => '192.168.1.91:12000', greutate => 2.5 } ],
});
$memd->flush_all;
pentru($i=0; $i<120000; $i++){
$memd->set($i, "Salut Memcache, vreau să folosesc Memcache, ești bine");
}
$memd = undefiniție;
Perl-ul de aici folosește modulul Cache::Memcached::Fast, nu Cache::Memcached, pentru că modulul Cache::Memcached::Fast este scris în C, deci modulul perl testat de mulți nu este la fel de eficient ca php, și acesta este motivul.
|
Precedent:Ghid de început pentru Python 2.7Următor:Acum forumul este în beta închisă, oricine este binevenit să-și exprime opiniile
|