CentOS での memcached の設定
この節では、CentOS に memcached をインストールする手順を示します。 詳しくは、を参照してください memcached wiki.
PHP は memcache をネイティブでサポートしていないので、それを使用するには PHP 用の拡張モジュールをインストールする必要があります。 PHP には 2 つの拡張モジュールがあり、どちらを使用するかをデコードすることが重要です。
-
memcache
(いいえ d) – 定期的にメンテナンスされていない、古いが一般的な拡張機能。
このmemcache
現在の拡張機能 次を含まない php 7 で動作します。 参照: memcache に関する PHP ドキュメント.正確な名前は、
php-pecl-memcache
CentOS の場合。 -
memcached
((を使用)d
) – PHP 7 と互換性のある、新しくメンテナンスされた拡張モジュールです。 参照: memcached の PHP ドキュメント.正確な名前は、
php-pecl-memcached
CentOS の場合。
CentOS での memcached のインストールと設定
CentOS 上で memcached をインストールするには、次のタスクをユーザーとして実行します。 root
権限:
-
memcached とその依存関係をインストールします。
code language-bash yum -y update
code language-bash yum install -y libevent libevent-devel
code language-bash yum install -y memcached
code language-bash yum install -y php-pecl-memcache
note info INFO 上記のコマンドの構文は、使用するパッケージリポジトリによって異なる場合があります。 例えば、webtatic と PHP 5.6 を使用する場合、 yum install -y php56w-pecl-memcache
. 使用方法yum search memcache|grep php
をクリックして、適切なパッケージ名を検索します。 -
の memcached 設定の変更
CACHESIZE
およびOPTIONS
:-
開く
/etc/sysconfig/memcached
テキストエディター。 -
の値を見つけます。
CACHESIZE
そして、それを少なくとも 1 GB に変更します。 例:code language-config CACHESIZE="1GB"
-
の値を見つけます。
OPTIONS
に変更します。localhost
または127.0.0.1
-
-
変更をに保存します。
memcached
をクリックして、テキストエディターを終了します。 -
memcached を再起動します。
code language-bash service memcached restart
-
Web サーバーを再起動します。
Apache の場合
code language-bash service httpd restart
-
次の節に進みます。
Commerceをインストールする前に、memcached が機能することを確認
Adobeでは、Commerceをインストールする前に、memcached をテストして機能することを確認することをお勧めします。 この操作には数分しかかかりません。また、後でトラブルシューティングを簡略化することもできます。
memcached が Web サーバで認識されることを確認します。
memcached が Web サーバで認識されることを確認するには、次の手順に従います。
-
を作成
phpinfo.php
web サーバーの docroot にあるファイル:code language-php <?php // Show all information, defaults to INFO_ALL phpinfo();
-
Web ブラウザーでそのページに移動します。
例:
http://192.0.2.1/phpinfo.php
-
memcache が次のように表示されていることを確認します。
memcached バージョン 3.0.5 以降を使用していることを確認します。
memcache が表示されない場合は、web サーバーを再起動してブラウザーページを更新します。 それでも表示されない場合は、をインストールしたことを確認します php-pecl-memcache
拡張機能。
MySQL データベースと PHP スクリプトで構成される memcache テストを作成します。
このテストでは、MySQL データベース、テーブル、およびデータを使用して、データベースデータを取得して memcache に保存できることを確認します。 PHP スクリプトはまずキャッシュを検索します。 結果が存在しない場合、スクリプトはデータベースにクエリを実行します。 クエリが元のデータベースで実行された後、スクリプトは次を使用して結果を memcache に保存します set
コマンド。
MySQL データベースを作成します。
mysql -u root -p
時刻 mysql
プロンプトで、次のコマンドを入力します。
create database memcache_test;
GRANT ALL ON memcache_test.* TO memcache_test@localhost IDENTIFIED BY 'memcache_test';
use memcache_test;
create table example (id int, name varchar(30));
insert into example values (1, "new_data");
exit
作成 cache-test.php
web サーバーの docroot で、次の操作を行います。
$meminstance = new Memcached();
$meminstance->addServer('<memcached hostname or ip>', <memcached port>);
$query = "select id from example where name = 'new_data'";
$querykey = "KEY" . md5($query);
$result = $meminstance->get($querykey);
if (!$result) {
try {
$dbh = new PDO('mysql:host=localhost;dbname=memcache_test','memcache_test','memcache_test');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$result = $dbh->query("select id from example where name = 'new_data'")->fetch();
$meminstance->set($querykey, $result, 0, 600);
print "got result from mysql\n";
return 0;
} catch (PDOException $e) {
die($e->getMessage());
}
}
print "got result from memcached\n";
return 0;
ここで、 <memcached hostname or ip>
次のいずれか localhost
, 127.0.0.1
、または memcache ホスト名もしくは IP アドレス。 この <memcached port>
はリッスンポートです(デフォルトでは、 11211
.
コマンドラインからスクリプトを実行します。
cd <web server docroot>
php cache-test.php
最初の結果は次のとおりです。 got result from mysql
. つまり、キーは memcached には存在しませんが、MySQL から取得されたものです。
2 つ目の結果は次のとおりです got result from memcached
:値が memcached に正常に格納されていることを確認します。
最後に、Telnet を使用して memcache キーを確認できます。
telnet localhost <memcache port>
プロンプトに対して、と入力します。
stats items
結果は次のようになります。
STAT items:3:number 1
STAT items:3:age 1075
STAT items:3:evicted 0
STAT items:3:evicted_nonzero 0
STAT items:3:evicted_time 0
STAT items:3:outofmemory 0
STAT items:3:tailrepairs 0
memcache ストレージをフラッシュし、Telnet を終了します。
flush_all
quit