|
|
Geplaatst op 05-10-2014 23:16:39
|
|
|

De serverzijde installeert memcache voornamelijk aan de serverzijde
Memcache gebruikt de libevent-bibliotheek voor socketverwerking, dus je moet ook libevent installeren.
Downloadadres: http://www.monkey.org/~provos/libevent
Memcache downloadadres: http://danga.com/memcached/download.bml
De gedetailleerde methode is als volgt:
1. Installeer eerst libevent:
# Tar zxvf libevent-1.4.6-stable.tar.gz
# ./configureer --prefix=/usr
# maak
# maak installatie
2. Test of libevent succesvol is geïnstalleerd:
# Is -al /usr/lib | grep libevent
[root@localhost zacht]# 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 30 dec 11:00 libevent-1.4.so.2.1.1
-rw-r--r-- 1 root root 366946 dec 30 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 wortelwortel 107523 30 dec 11:00 libevent_core-1.4.so.2.1.1
-rw-r--r-- 1 wortelwortel 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 wortelwortel 219483 30 december 11:00 libevent_extra-1.4.so.2.1.1
-rw-r-r-- 1 wortelwortel 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 wortelwortel 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. Installeer memcached en specificeer de installatielocatie van libevent in de installatie:
# Tar zxvf memcached-1.2.6.tar.gz
# ./configureer --with-libevent=/usr
# maak
# maak installatie
Na voltooiing van de installatie wordt memcached geplaatst in /usr/local/bin/memcached
4. Test of de memcached succesvol is geïnstalleerd:
# Ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 121261 30 dec 11:02 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 130191 30 dec 11:02 /usr/local/bin/memcached-debug
5. Installeer de PHP-extensie voor Memcache
Selecteer http://pecl.php.net/package/memcache de versie van memcache die je wilt downloaden.
# 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
# maak
# maak installatie
6. Na bovenstaande installatie verschijnt er een prompt als deze:
Gedeelde extensies installeren: "/usr/local/php/lib/php/extensions/no-debug-non-zts-2006xxxx/"
7. Verander de extension_dir = "./" in de php.ini naar
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/"
8. Voeg een regel toe om de memcache-extensie te laden:
extensie=memcache.so
9. Start en stop Memcache aan de serverzijde:
# /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
De relevante uitleg is als volgt:
-d optie is om een daemon te starten,
-m is de hoeveelheid geheugen die aan Memcache is toegewezen voor gebruik, in MB, hier 200MB
-u is de gebruiker die Memcache draait, ik ben hier root
-l is het IP-adres van de server die luistert, als er meerdere adressen zijn, geef ik het IP-adres van de server hier 192.168.1.91 aan
-p is de poort waar Memcache is ingesteld om te luisteren, ik stel hier 12000 in, bij voorkeur een poort boven 1024
De -c optie is het maximale aantal gelijktijdige verbindingen, de standaard is 1024, ik stel het hier in op 256
-P is het pid-bestand dat is ingesteld om Memcache op te slaan, en ik sla het hier op in /tmp/memcached.pid
Stop het Memcache-proces:
# dood 'cat /tmp/memcached.pid'
Meerdere daemons kunnen ook worden gestart, maar de poorten kunnen niet worden herhaald
10. Apache opnieuw starten
Dienst httpD-herstart
11. Memcache-omgevingstest:
Voer het volgende php-bestand uit, als er output is: Dit is een test!, betekent dit dat de omgeving succesvol is gebouwd.
<?php
$mem = nieuwe Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('sleutel', 'Dit is een test!', 0, 60);
$val = $mem->get('key');
echo $val;
?>
PHP testcode:
<?php
ini_set("memcache.hash_function", "crc32");
$memcache = nieuwe Memcache;
$memcache->addServer('192.168.1.91', 12000);
$memcache->flush();
for($i=0; $i<120000; $i++){
$memcache->set($i,
"Hoi Memcache, ik wil Memcache gebruiken, goed met je", 0, 1000);
}
?>
Perl's testcode:
#!/usr/bin/perl
gebruik Cache::Memcached::Fast;
mijn $memd = nieuwe Cache::Memcached::Fast({
servers => [ { adres => '192.168.1.91:12000', gewicht => 2.5 } ],
});
$memd->flush_all;
for($i=0; $i<120000; $i++){
$memd->set($i, "hallo memcache, ik wil memcache gebruiken, goed met je");
}
$memd = ondefinitief;
De perl hier gebruikt de Cache::Memcached::Fast-module, niet Cache::Memcached, omdat de Cache::Memcached::Fast-module in C is geschreven, dus de perl-module die door veel mensen getest wordt niet zo efficiënt is als php, en dat is de reden.
|
Vorig:Python 2.7 Gids voor de BeginVolgend:Nu het forum in gesloten bèta is, is iedereen welkom om zijn mening te geven
|