読者です 読者をやめる 読者になる 読者になる

masalibの日記

システム開発、運用と猫の写真ブログです

centos5.11でのWEBサーバー構築:(memcached:クライアント編)

http://masalib.hatenablog.com/entry/2015/02/19/221252
の続きでクライアント編です
確認は普通のPHPとzendframeworkのcacheでおこないます

6−7・クライアント側インストール用ライブラリをインストール
yum install gcc44 gcc44-c++ libstdc++44-devel -y

#gcc反映
export CC=/usr/bin/gcc44
export CXX=/usr/bin/g++44
6−8・サーバー側のソースのダウンロードと解凍とインストール

PECL::memcacheとPECL::memcachedがある
PECL::memcachedの方が性能がいいらしいので、
PECL::memcachedを使用する

#libmemcachedのインストール
cd /usr/local/src/
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar -zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached
make
make install

#memcachedのインストール
cd /usr/local/src/
wget http://pecl.php.net/get/memcached-2.2.0.tgz
tar -zxvf memcached-2.2.0.tgz
cd memcached-2.2.0
phpize
aclocal
./configure --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl
make
make test

#途中でreport?と聞かれるのでyを入力してエンターキーを押す
make install
6−9・php.iniの設定変更
vim /etc/php.ini

#extension=memcached.so
#  ↑上記を追加

service httpd configtest

#問題なければ
service httpd reload
6−10・動作確認
#memcachedが認識されていることを確認する
php -m | grep memcache

#内容をコピペする
vim /usr/local/apache2/htdocs/testmemecached.php
<?php
//memcachedにデータを書き込む
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->set('key1', 'cat', 3600); // キー,バリュー,有効期限(秒)
$m->set('key2', 'dog', 3600); // キー,バリュー,有効期限(秒)
$m = NULL;


//memcachedからデータを読み込む
$m = new Memcached();
$m->addServer('localhost', 11211);
if ($val = $m->get('key1')) {
    echo $val .'<br>';
}
if ($val = $m->get('key2')) {
    echo $val .'<br>';
}
?>
#取得できるのか確認する
cd 
wget http://localhost/testmemecached.php

view testmemecached.php
# cat<br>dog<br>と表示されることを確認する
6−11・ZendFrameworkのmemcachedの動作確認

ZendFrameworkでのmemcachedができることを確認する


#内容をコピペする
vim /usr/local/apache2/htdocs/zemdmem_cached_input.php
<?php
require_once 'Zend/Cache.php';

    $frontend = array(
        'lifetime' => 300,
    );
    // バックエンド(Memcached)の設定
    $backend = array(
        'servers' => array(
            array(
                'host'             => 'localhost',
                'port'             => 11211,
                'persistent'       => true,
                'timeout'          => 300,
                'weight'           => 1,
                'retry_interval'   => 15,
                'status'           => true,
                'failure_callback' => null,
            ),
        ),
        'compression' => true,
    );

    $cache = Zend_Cache::factory("Core", "Memcached", $frontend, $backend);

    // データをキャッシュ
    $cache->save("value1", "key1");
    $cache->save("value2", "key2");
    $cache->save("value3", "key3");
     
?>
input proc success
#内容をコピペする
vim /usr/local/apache2/htdocs/zemdmem_cached_ouput.php
<?php
require_once 'Zend/Cache.php';

    $frontend = array(
        'lifetime' => 300,
    );
    // バックエンド(Memcached)の設定
    $backend = array(
        'servers' => array(
            array(
                'host'             => 'localhost',
                'port'             => 11211,
                'persistent'       => true,
                'timeout'          => 300,
                'weight'           => 1,
                'retry_interval'   => 15,
                'status'           => true,
                'failure_callback' => null,
            ),
        ),
        'compression' => true,
    );

    $cache = Zend_Cache::factory("Core", "Memcached", $frontend, $backend);

    // データの出力
    echo  $cache->load("key1");
    echo  "<br>";
    echo  $cache->load("key2");
    echo  "<br>";
    echo  $cache->load("key3");
    echo  "<br>";
?>
output proc success
#動作確認する
wget http://localhost/zemdmem_cached_ouput.php
wget http://localhost/zemdmem_cached_ouput.php