|
|
Yayınlandı 5.10.2014 23:16:39
|
|
|

Sunucu tarafı ise genellikle memcache'i sunucu tarafına yükler
Memcache, soket işleme için libevent kütüphanesini kullanıyor, bu yüzden libevent'i de yüklemen gerekiyor.
İndirme adresi: http://www.monkey.org/~provos/libevent
Memcache indirme adresi: http://danga.com/memcached/download.bml
Detaylı yöntem şöyledir:
1. Önce libevent'i kurun:
# tar zxvf libevent-1.4.6-stable.tar.gz
# ./configure --prefix=/usr
#
# Kurulum yap
2. libevent'in başarılı kurulup kurulmadığını test edin:
# Iss -al /usr/lib | GREP libevent
[root@localhost yumuşak]# ls -al /usr/lib | GREP libevent
lrwxrwxrwx 1 root root 21 Aralık 30 11:00 libevent-1.4.so.2 -> libevent-1.4.so.2.1.1
-rwxr-xr-x 1 kök kök 280179 30 Aralık 11:00 libevent-1.4.so.2.1.1
-rw-r--r-- 1 kök kök 366946 30 Aralık 11:00 libevent.a
lrwxrwxrwx 1 kök kök 26 Aralık 30 11:00 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.1
-rwxr-xr-x 1 kök kök 107523 30 Aralık 11:00 libevent_core-1.4.so.2.1.1
-rw-r--r-- 1 kök kök 146944 30 Aralık 11:00 libevent_core.a
-rwxr-xr-x 1 root root 860 30 Aralık 11:00 libevent_core.la
lrwxrwxrwx 1 root root 26 Aralık 30 11:00 libevent_core.so -> libevent_core-1.4.so.2.1.1
lrwxrwxrwx 1 kök kök 27 Aralık 30 11:00 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.1
-rwxr-xr-x 1 kök kök 219483 30 Aralık 11:00 libevent_extra-1.4.so.2.1.1
-rw-r--r-- 1 kök kök 281326 30 Aralık 11:00 libevent_extra.a
-rwxr-xr-x 1 root root 867 30 Aralık 11:00 libevent_extra.la
lrwxrwxrwx 1 kök kök 27 Aralık 30 11:00 libevent_extra.so -> libevent_extra-1.4.so.2.1.1
-rwxr-xr-x 1 kök kök 825 30 Aralık 11:00 libevent.la
lrwxrwxrwx 1 root root 21 Aralık 30 11:00 libevent.so -> libevent-1.4.so.2.1.1
3. memcached kurulumunu yapın ve libevent'in kurulum konumunu kurulumda belirtin:
# tar zxvf memcached-1.2.6.tar.gz
# ./configure --with-libevent=/usr
#
# Kurulum yap
Kurulum tamamlandıktan sonra memcached /usr/local/bin/memcached içine yerleştirilir
4. Memcached'in başarılı bir şekilde kurulup kurulmadığını test edin:
# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 kök kök 121261 30 Aralık 11:02 /usr/local/bin/memcached
-rwxr-xr-x 1 kök kök 130191 30 Aralık 11:02 /usr/local/bin/memcached-debug
5. Memcache için PHP uzantısını kur
http://pecl.php.net/package/memcache içinde, indirmek istediğiniz memcache sürümünü seçin.
# 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
#
# Kurulum yap
6. Yukarıdaki kurulumdan sonra böyle bir uyarı olacak:
Paylaşılan uzantıların kurulması: "/usr/local/php/lib/php/extensions/no-debug-non-zts-2006xxxx/"
7. php.ini'daki extension_dir = "./" şeklini şu şekilde değiştirin
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/"
8. Memcache uzantısını yüklemek için bir satır ekleyin:
extension=memcache.so
9. Memcache'i sunucu tarafında başlatın ve durdurun:
# /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
İlgili açıklama şöyledir:
-d seçeneği bir iblis başlatmak,
-m, Memcache'e kullanım için tahsis edilen bellek miktarıdır, MB cinsinden burada 200MB
-Memcache çalıştıran kullanıcı, ben burada root yapıyorum
-l, dinleyen sunucunun IP adresidir, birden fazla adres varsa, sunucunun IP adresini burada belirtiyorum: 192.168.1.91
-p, Memcache'in dinlemeye ayarlandığı port, burada 12000 ayarladım, tercihen 1024'ün üzerinde bir port
-c seçeneği, aynı anda yapılan bağlantıların maksimum sayısıdır, varsayılan 1024, burada 256 olarak ayarladım
-P, Memcache'i kaydetmek için ayarlanmış pid dosyasıdır ve ben bunu burada /tmp/memcached.pid içinde kaydediyorum
Memcache Sürecini Durdurun:
# 'kedi /tmp/memcached.pid'i öldür
Birden fazla daemon da başlatılabilir, ancak portlar tekrarlanamaz
10. Apache'yi yeniden başlatma
Service HTTPD restart
11. Memcache ortam testi:
Aşağıdaki php dosyasını çalıştırın, eğer çıktı varsa Bu bir test! demektir, bu ortamın başarıyla oluşturulduğu anlamına gelir.
<?php
$mem = yeni Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('anahtar', 'Bu bir sınav!', 0, 60);
$val = $mem->get('anahtar');
Echo $val;
?>
PHP test kodu:
<?php
ini_set("memcache.hash_function","crc32");
$memcache = yeni Memcache;
$memcache->addServer('192.168.1.91', 12000);
$memcache->flush();
for($i=0; $i<120000; $i++){
$memcache->set($i,
"Merhaba Memcache, Memcache kullanmak istiyorum, iyisin", 0, 1000);
}
?>
Perl'in test kodu:
#!/usr/bin/perl
Cache::Memcached::Fast kullanın;
my $memd = yeni Cache::Memcached::Fast({
sunucular => [ { adres => '192.168.1.91:12000', ağırlık => 2.5 } ],
});
$memd->flush_all;
for($i=0; $i<120000; $i++){
$memd->set($i, "merhaba memcache, memcache kullanmak istiyorum, iyisin");
}
$memd = belirsiz;
Buradaki perl, Cache::Memcached::Fast modülünü kullanır, Cache::Memcached değil, çünkü Cache::Memcached::Fast modülü C dilinde yazılmıştır, bu yüzden birçok kişi tarafından test edilen perl modülü php kadar verimli değildir ve bu yüzden de bu durumdur.
|
Önceki:Python 2.7 Başlangıç RehberiÖnümüzdeki:Şimdi forum kapalı beta aşamasında, herkes görüşünü paylaşmaya davedil
|