Le côté serveur installe principalement memcache côté serveur
Memcache utilise la bibliothèque libevent pour le traitement des sockets, donc vous devez aussi installer libevent.
Adresse de téléchargement : http://www.monkey.org/~provos/libevent
Adresse de téléchargement Memcache : http://danga.com/memcached/download.bml
La méthode détaillée est la suivante :
1. Installer libevent d’abord :
# Tar ZXVF libevent-1.4.6-stable.tar.gz
# ./configure --prefix=/usr
# Faire
# Installe
2. Tester si libevent est installé avec succès :
# ls -al /usr/lib | grep libevent
[root@localhost doux]# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 racine racine 21 30 décembre 11:00 libevent-1.4.so.2 -> libevent-1.4.so.2.1.1
-rwxr-xr-x 1 racine racine 280179 30 décembre 11:00 libevent-1.4.so.2.1.1
-rw-r--r-- 1 racine racine 366946 30 déc. 11:00 libevent.a
lrwxrwxrwx 1 racine racine 26 30 déc. 11:00 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.1
-rwxr-xr-x 1 racine racine 107523 30 déc. 11:00 libevent_core-1.4.so.2.1.1
-rw-r--r-- 1 racine racine 146944 30 déc. 11:00 libevent_core.a
-rwxr-xr-x 1 racine racine 860 30 déc. 11:00 libevent_core.la
lrwxrwxrwx 1 racine racine 26 30 déc. 11:00 libevent_core.so -> libevent_core-1.4.so.2.1.1
lrwxrwxrwx 1 racine racine 27 30 décembre 11:00 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.1
-rwxr-xr-x 1 racine racine 219483 30 décembre 11:00 libevent_extra-1.4.so.2.1.1
-rw-r--r-- 1 racine racine 281326 30 déc. 11:00 libevent_extra.a
-rwxr-xr-x 1 racine racine 867 30 décembre 11:00 libevent_extra.la
lrwxrwxrwx 1 racine racine 27 déc. 30 11:00 libevent_extra.so -> libevent_extra-1.4.so.2.1.1
-rwxr-xr-x 1 racine racine 825 30 décembre 11:00 libevent.la
lrwxrwxrwx 1 racine racine 21 30 décembre 11:00 libevent.so -> libevent-1.4.so.2.1.1
3. Installer memcached, et spécifier l’emplacement d’installation de libevent dans l’installation :
# Tar ZXVF memcached-1.2.6.tar.gz
# ./configure --with-libevent=/usr
# Faire
# Installe
Une fois l’installation terminée, memcached sera placé dans /usr/local/bin/memcached
4. Tester si le memcached est installé avec succès :
# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 racine racine 121261 30 déc. 11:02 /usr/local/bin/memcached
-rwxr-xr-x 1 racine racine 130191 30 déc. 11:02 /usr/local/bin/memcached-debug
5. Installer l’extension PHP pour Memcache
Dans http://pecl.php.net/package/memcache, sélectionnez la version de memcache que vous souhaitez télécharger.
# 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
# Faire
# Installe
6. Après l’installation ci-dessus, une invite comme celle-ci s’affichera :
Installation d’extensions partagées : « /usr/local/php/lib/php/extensions/no-debug-non-zts-2006xxxx/ »
7. Changer le extension_dir = « ./ » dans le php.ini par
extension_dir = « /usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/ »
8. Ajouter une ligne pour charger l’extension memcache :
extension=memcache.so
9. Démarrer et arrêter Memcache côté serveur :
# /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
L’explication pertinente est la suivante :
-d est de lancer un démon,
-m est la quantité de mémoire allouée à Memcache pour une utilisation, en Mo, ici 200 Mo
-u est l’utilisateur qui utilise Memcache, je suis root ici
-l est l’adresse IP du serveur qui écoute, s’il y a plusieurs adresses, je spécifie ici l’adresse IP du serveur 192.168.1.91
-p est le port où Memcache est réglé pour écouter, j’ai mis 12000 ici, de préférence un port au-dessus de 1024
L’option -c correspond au nombre maximal de connexions simultanées en cours, la valeur par défaut est 1024, je l’ai définie ici à 256
-P est le fichier pid qui doit sauvegarder Memcache, et je l’enregistre ici dans /tmp/memcached.pid
Arrêtez le processus Memcache :
# Tuer 'chat /tmp/memcached.pid '
Plusieurs démons peuvent aussi être lancés, mais les ports ne peuvent pas être répétés
10. Redémarrer Apache
service httpd restart
11. Test de l’environnement Memcache :
Exécutez le fichier php suivant, s’il y a une sortie. C’est un test !, cela signifie que l’environnement est construit avec succès.
< ?php
$mem = nouvelle Memcache ;
$mem->connect (« 127.0.0.1 », 11211) ;
$mem->set (« clé », « C’est un test ! », 0, 60) ;
$val = $mem->get('key') ;
Echo $val ;
?>
Code de test PHP :
< ?php
ini_set(« memcache.hash_function »,"CRC32 ») ;
$memcache = nouvelle Memcache ;
$memcache->addServer('192.168.1.91', 12000) ;
$memcache->flush() ;
pour ($i=0 ; $i<120000 ; $i++){
$memcache->set($i,
« Salut Memcache, je veux utiliser Memcache, t’es bon », 0, 1000) ;
}
?>
Code de test de Perl :
# !/usr/bin/perl
utiliser Cache ::Memcached ::Fast ;
my $memd = new Cache ::Memcached ::Fast({
Serveurs => [ { adresse => '192.168.1.91:12000', poids => 2,5 } ],
});
$memd->flush_all ;
pour ($i=0 ; $i<120000 ; $i++){
$memd->set($i, « salut memcache, je veux utiliser memcache, t’es bon ») ;
}
$memd = undef ;
Le perl ici utilise le module Cache ::Memcached ::Fast, pas Cache ::Memcached, car le module Cache ::Memcached ::Fast est écrit en C, donc le module perl testé par beaucoup n’est pas aussi efficace que php, et c’est la raison.
|