Serversidan installerar främst memcache på serversidan
Memcache använder libevent-biblioteket för socket-bearbetning, så du behöver också installera libevent.
Nedladdningsadress: http://www.monkey.org/~provos/libevent
Memcache nedladdningsadress: http://danga.com/memcached/download.bml
Den detaljerade metoden är följande:
1. Installera libevent först:
# tar zxvf libevent-1.4.6-stable.tar.gz
# ./konfigurera --prefix=/usr
# gör
# gör installation
2. Testa om libevent installeras framgångsrikt:
# ls -al /usr/lib | grep libevent
[root@localhost mjukt]# 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 rot rot 366946 30 dec 11:00 libevent.a
lrwxrwxrwx 1 root root 26 dec 30 11:00 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.1
-rwxr-xr-x 1 rotrot 107523 30 dec 11:00 libevent_core-1.4.so.2.1.1
-rw-r--r-- 1 rotrot 146944 30 dec 11:00 libevent_core.a
-rwxr-xr-x 1 root root 860 dec 30 11:00 libevent_core.la
lrwxrwxrwx 1 root root 26 dec 30 11:00 libevent_core.so -> libevent_core-1.4.so.2.1.1
lrwxrwxrwx 1 root root 27 dec 30 11:00 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.1
-rwxr-xr-x 1 rotrot 219483 30 dec 11:00 libevent_extra-1.4.so.2.1.1
-rw-r--r-- 1 rotrot 281326 30 dec 11:00 libevent_extra.a
-rwxr-xr-x 1 root root 867 dec 30 11:00 libevent_extra.la
lrwxrwxrwx 1 root root 27 dec 30 11:00 libevent_extra.so -> libevent_extra-1.4.so.2.1.1
-rwxr-xr-x 1 rot rot 825 dec 30 11:00 libevent.la
lrwxrwxrwx 1 root root 21 dec 30 11:00 libevent.so -> libevent-1.4.so.2.1.1
3. Installera memcached och ange installationsplatsen för libevent i installationen:
# Tar Zxvf memcached-1.2.6.tar.gz
# ./konfigurera --med-libevent=/usr
# gör
# gör installation
När installationen är klar placeras memcached i /usr/local/bin/memcached
4. Testa om memcachen installeras framgångsrikt:
# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 rotrot 121261 30 dec 11:02 /usr/local/bin/memcached
-rwxr-xr-x 1 rotrot 130191 30 dec 11:02 /usr/local/bin/memcached-debug
5. Installera PHP-tillägget för Memcache
I http://pecl.php.net/package/memcache väljer du den version av memcache du vill ladda ner.
# 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
# gör
# gör installation
6. Efter ovanstående installation kommer en prompt som denna:
Installera delade tillägg: "/usr/local/php/lib/php/extensions/no-debug-non-zts-2006xxxx/"
7. Ändra extension_dir = "./" i php.ini till
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/"
8. Lägg till en rad för att ladda memcache-tillägget:
extension=memcache.so
9. Starta och stoppa Memcache på serversidan:
# /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
Den relevanta förklaringen är följande:
-d alternativet är att starta en daemon,
-m är mängden minne som tilldelats Memcache för användning, i MB, här 200MB
-u är användaren som kör Memcache, jag är root här
-l är IP-adressen till servern som lyssnar, om det finns flera adresser anger jag serverns IP-adress här 192.168.1.91
-p är porten där Memcache är inställd på att lyssna, jag sätter 12000 här, helst en port över 1024
-c-alternativet är det maximala antalet samtidiga anslutningar som körs, standardinställningen är 1024, jag ställer in det till 256 här
-P är pid-filen som är inställd på att spara Memcache, och jag sparar den här i /tmp/memcached.pid
Stoppa Memcache-processen:
# döda 'cat /tmp/memcached.pid'
Flera demoner kan också startas, men portarna kan inte upprepas
10. Starta om Apache
Tjänst httpD-omstart
11. Memcache-miljötest:
Kör följande php-fil, om det finns en utdata Detta är ett test!, betyder det att miljön är framgångsrikt byggd.
<?php
$mem = ny Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set("nyckel", "Detta är ett test!", 0, 60);
$val = $mem->get('key');
Echo $val;
?>
PHP-testkod:
<?php
ini_set("memcache.hash_function", "crc32");
$memcache = ny Memcache;
$memcache->addServer('192.168.1.91', 12000);
$memcache->flush();
för($i=0; $i<120000; $i++){
$memcache->set($i,
"Hej memcache, jag vill använda memcache, du är bra", 0, 1000);
}
?>
Perls testkod:
#!/usr/bin/perl
använd Cache::Memcached::Fast;
my $memd = ny Cache::Memcached::Fast({
servrar => [ { adress => '192.168.1.91:12000', vikt => 2,5 } ],
});
$memd->flush_all;
för($i=0; $i<120000; $i++){
$memd->set($i, "hej memcache, jag vill använda memcache, du är bra");
}
$memd = oförsvar;
Perlen här använder modulen Cache::Memcached::Fast, inte Cache::Memcached, eftersom modulen Cache::Memcached::Fast är skriven i C, så den perlmodul som testas av många inte är lika effektiv som php, och det är anledningen.
|