CentOS6.5 LNMPのPHP環境におけるMemcacheの使用方法の例の詳細
1、概要
memcacheモジュールは、メモリキャッシュ用のプロシージャとオブジェクト向けの便利なインタフェースを提供し、特にダイナミックウェブプログラムを設計する際にデータベースへのアクセス圧力を低減する効率的なデーモンプロセスです.
memcacheはphpの拡張モジュールであり、phpがmemcachedサーバに接続してインタラクティブに協力することを実現し、php webプログラムがmemcachedバッファサーバ上のデータの削除変更操作を実現するために使用される(一般的に検索する機能が多い).
2、LNMP環境インストールmemcacheモジュール
3、phpでmemcacheモジュールを配置する
#php 5に切り替えます.5.30のインストールディレクトリ
#phpのプロファイルの検索
#memcacheモジュールのインストール場所の検索
#vimエディタでextensionを検索_dirプラグインのモジュールパワーを編集する
4、php-fpmでphpプロセスを起動する
#php構文のチェック
#phpサービスプロセスの開始
5、nginxプロセスの起動
#nginx構文のチェック
#nginxサービスの開始
6、試験nginx、php、memcache接続memcachedキャッシュサーバー
#phpinfo()関数を構成し、ブラウザにwebサーバのipアドレスを入力し、phpがmemcacheモジュールを正常にロードしたかどうかをテストする
#telnetツールでmemcachedサーバが起動しているかどうかをテスト
#phpテストプログラムの作成
#curlでmemcacheモジュールがmemcachedサーバに正常に接続されたかどうかをテスト
#サーバ側でshellでmemcachedキャッシュのデータ情報を取得
memcacheモジュールは、メモリキャッシュ用のプロシージャとオブジェクト向けの便利なインタフェースを提供し、特にダイナミックウェブプログラムを設計する際にデータベースへのアクセス圧力を低減する効率的なデーモンプロセスです.
memcacheはphpの拡張モジュールであり、phpがmemcachedサーバに接続してインタラクティブに協力することを実現し、php webプログラムがmemcachedバッファサーバ上のデータの削除変更操作を実現するために使用される(一般的に検索する機能が多い).
2、LNMP環境インストールmemcacheモジュール
[root@fnw ~]# tar xf memcache-3.0.8-for-php5.5.9.tgz
[root@fnw ~]# cd memcache-3.0.8
[root@fnw memcache-3.0.8]# /usr/local/php5.5.30/bin/phpize
[root@fnw memcache-3.0.8]# ./configure --enable-memcache --with-php-config=/usr/local/php5.5.30/bin/php-config --with-zlib-dir
[root@fnw memcache-3.0.8]# make && make install
[root@fnw memcache-3.0.8]# cd ..
[root@fnw ~]#
3、phpでmemcacheモジュールを配置する
#php 5に切り替えます.5.30のインストールディレクトリ
[root@fnw memcache-3.0.8]# cd /usr/local/php5.5.30/
#phpのプロファイルの検索
[root@fnw php5.5.30]# find ./ -name php.ini
./lib/php.ini
#memcacheモジュールのインストール場所の検索
[root@fnw php5.5.30]# find ./ -name memcache*
./lib/php/extensions/no-debug-non-zts-20121212/memcache.so
#vimエディタでextensionを検索_dirプラグインのモジュールパワーを編集する
[root@fnw php5.5.30]# vim lib/php.ini
extension_dir="/usr/local/php5.5.30/lib/php/extensions/no-debug-non-zts-20121212/"
extension="memcache.so"
4、php-fpmでphpプロセスを起動する
#php構文のチェック
[root@fnw php5.5.30]# /usr/local/php5.5.30/sbin/php-fpm -t -c /usr/local/php5.5.30/lib/php.ini
[02-Nov-2015 13:50:28] NOTICE: configuration file /usr/local/php5.5.30/etc/php-fpm.conf test is successful
#phpサービスプロセスの開始
[root@fnw php5.5.30]# /usr/local/php5.5.30/sbin/php-fpm -c /usr/local/php5.5.30/lib/php.ini
[root@fnw php5.5.30]# netstat -tulnp | grep php
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 9903/php-fpm
5、nginxプロセスの起動
#nginx構文のチェック
[root@fnw php5.5.30]# /usr/local/nginx1.8/nginx -t
nginx: the configuration file /usr/local/nginx1.8/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx1.8/conf/nginx.conf test is successful
#nginxサービスの開始
[root@fnw php5.5.30]# /usr/local/nginx1.8/nginx
[root@fnw php5.5.30]# netstat -tulnp |grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9922/nginx
6、試験nginx、php、memcache接続memcachedキャッシュサーバー
#phpinfo()関数を構成し、ブラウザにwebサーバのipアドレスを入力し、phpがmemcacheモジュールを正常にロードしたかどうかをテストする
[root@fnw php5.5.30]# curl 192.168.1.167/phpinfo.php | grep memcache
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0<h2><a name="module_memcache">memcache</a></h2>
<tr class="h"><th>memcache support</th><th>enabled</th></tr>
<tr><td class="e">memcache.allow_failover</td><td class="v">1</td><td class="v">1</td></tr>
<tr><td class="e">memcache.chunk_size</td><td class="v">32768</td><td class="v">32768</td></tr>
<tr><td class="e">memcache.compress_threshold</td><td class="v">20000</td><td class="v">20000</td></tr>
<tr><td class="e">memcache.default_port</td><td class="v">11211</td><td class="v">11211</td></tr>
<tr><td class="e">memcache.hash_function</td><td class="v">crc32</td><td class="v">crc32</td></tr>
<tr><td class="e">memcache.hash_strategy</td><td class="v">consistent</td><td class="v">consistent</td></tr>
<tr><td class="e">memcache.lock_timeout</td><td class="v">15</td><td class="v">15</td></tr>
<tr><td class="e">memcache.max_failover_attempts</td><td class="v">20</td><td class="v">20</td></tr>
<tr><td class="e">memcache.protocol</td><td class="v">ascii</td><td class="v">ascii</td></tr>
<tr><td class="e">memcache.redundancy</td><td class="v">1</td><td class="v">1</td></tr>
<tr><td class="e">memcache.session_redundancy</td><td class="v">2</td><td class="v">2</td></tr>
<tr><td class="e">Registered save handlers </td><td class="v">files user memcache </td></tr>
100 67072 0 67072 0 0 1029k 0 --:--:-- --:--:-- --:--:-- 1091k
#telnetツールでmemcachedサーバが起動しているかどうかをテスト
[root@fnw php5.5.30]# telnet 192.168.1.2 11211
Trying 192.168.1.2...
Connected to 192.168.1.2.
Escape character is '^]'.
quit
Connection closed by foreign host.
#phpテストプログラムの作成
[root@fnw php5.5.30]# cd ../nginx1.8/html
[root@fnw ~]# vim index.php
<?php
$memcache = new Memcache;
$memcache->connect('192.168.1.2', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>
";
$memcache->set('mykey', "liangge", false, 0) or die ("Failed to save data at the server");
echo "Store data in the cache <br/>
";
$myvalue = $memcache->get('mykey');
echo "Data from the cache: ";
echo $myvalue;
echo "
";
?>
#curlでmemcacheモジュールがmemcachedサーバに正常に接続されたかどうかをテスト
[root@fnw ~]# curl 192.168.1.167/
Server's version: 1.4.24<br/>
Store data in the cache (data will expire in 10 seconds);<br/>
Data from the cache: liangge
[root@fnw ~]# ip addr show | grep "inet " #LNMP IP
inet 127.0.0.1/8 scope host lo
inet 192.168.1.167/24 brd 192.168.1.255 scope global eth1
#サーバ側でshellでmemcachedキャッシュのデータ情報を取得
[root@mysqldb1 ~]# printf "get mykey\r
" | nc 192.168.1.2 11211
VALUE mykey 0 7
liangge
END
[root@mysqldb1 ~]# ip addr show | grep "inet " #memcached IP
inet 127.0.0.1/8 scope host lo
inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0
LNMP+memcache , 。 QQ:877306754, 。