ホームページ  >  記事  >  バックエンド開発  >  memcache を有効にして PHP セッションを保存し、複数のサーバー上のセッション関連の問題を解決します

memcache を有効にして PHP セッションを保存し、複数のサーバー上のセッション関連の問題を解決します

WBOY
WBOYオリジナル
2016-06-13 13:25:46672ブラウズ

memcache に転送して PHP セッションを保存し、複数サーバーのセッション問題を解決します

?

?

PECL :: Package :: memcache 2.1.1 バージョンの変更ログに次のエントリがあります:


- 実験的なセッション ストレージのサポートを追加しました。memcached をセッション ストレージとして使用できます。

つまり、memcache を PHP の session.save_handler として直接使用できます。


1. memcached をインストールするには、同じ ./configure; make install を使用します。そのため、最初に libevent をインストールする必要があります。


2. pecl::memcache をインストールします。pecl コマンド ライン ツールを使用してインストールします。


pecl install memcache

またはソースから直接インストールします:

phpize

./configure

作る

メイクインストール

php.ini で extension=memcache.so を開き、Apache を再起動し、phpinfo で登録された保存ハンドラーを確認します。ユーザー memcache が 3 つのファイルを使用できます。


3. 構成ファイルを修正し、php.ini でグローバルに設定します。


session.save_handler = memcache

session.save_path = tcp://127.0.0.1:11211

またはディレクトリ内の .htaccess:

php_value session.save_handler memcache

php_value session.save_path tcp://127.0.0.1:11211

または特定のアプリケーション:

ini_set(session.save_handler, memcache);

ini_set(session.save_path, tcp://127.0.0.1:11211);?

複数の memcached サーバーを区切るにはカンマを使用します。Memcache::addServer() ドキュメントに記載されているように、追加のパラメータとして、persistent、weight、timeout、retry_interval などを取得できます。次のようなものです。 tcp://host1:port1?persistent=1&weight=2,tcp://host2:port2。


4. memcached を開始します:


memcached -d -l 127.0.0.1 -p 11212 -m 128

5. プログラム内のセッション ストレージに memcache を使用します。例を使用してテストします。


___FCKpd___6

6. sessionid を使用して memcached をチェックインします:


$memcache = memcache_connect(localhost, 11211);

var_dump($memcache->get(19216821213c65cedec65b0883238c278eeb573e077));

セッション[テスト 3] = time();

print

print session_id();

?>

見られます

string(37) TEST|i:1177556731;TEST3|i:1177556881;

このような出力は、セッションが正常に動作していることを証明します。


memcache を使用してセッションを保存すると、ファイルよりも読み取りと書き込みがはるかに高速になり、複数のサーバーがセッションを共有する必要がある場合に、同じ memcached サーバーのグループを使用するように構成すると便利です。以上で、余分な作業負荷が軽減されます。セッション データがメモリに保存されるため永続性に欠けるという欠点がありますが、セッション データにとっては大きな問題ではありません。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHPアセンブリ次の記事:PHPアセンブリ