PHP操作memcache

WBOY
リリース: 2016-06-23 14:33:26
オリジナル
812 人が閲覧しました

1. はじめに

memcache モジュールは、特に動的 Web プログラムの設計時にデータベース アクセスを削減するために、メモリ キャッシュ用の手続き型プログラムとオブジェクト指向の便利なインターフェイスを提供する効率的なデーモン プロセスです。

memcache は、通信会話 (session_handler) の処理も提供します。

Memcache モジュールの詳細については、http://www.danga.com/memcached/ を参照してください。

1.1. php.ini の memcache 設定項目のリスト php.ini の memcache 設定項目のリスト memcache.max_failover_attempts"20"PHP_INI_ALL memc ache 2.1.0 以降で利用可能.memcache.chunk_size"8192" PHP_INI_ALLmemcache 2.0.2.memcache.default_port"11211"PHP_INI_ALLmemcache 2. 0.2.memcache.hash_strategy「標準」 PHP_INI_ALLmemcache 2.2.0 以降で利用可能memcache.hash_function"crc32"PHP_INI_ALL memcache 2.2.0 以降で利用可能 session.save_handler「ファイル」PHP_INI_ALLサポートされていますmemcache 2.1.2 以降session.save_path""PHP_INI_ALLPHP_INI について _* 定数の詳細と定義については、 PHP マニュアルの php.ini 設定オプション。
名前 デフォルト値 変数かどうか 変更ログ
memcache.allow_failover 「1」 PHP_INI_ALL memcache 2.0.2 以降で利用可能
以降で利用可能
以降で利用可能
memcache 2.1.2 以降でサポート
1.2. 以下は設定項目の簡単な説明です

memcache.allow_failover Boolean

エラーが発生したときに他のサーバーに透過的にフェイルオーバーするかどうか (注: フェイルオーバーは動詞です)。

memcache.max_failover_attempts integer

サーバー設定の数を定義し、データを取得します。memcache.allow_failover と組み合わせてのみ使用されます。

memcache.chunk_size integer

データは指定されたサイズ (chunk_size) のチャンクに分割されて送信されます。この値 (chunk_size) が小さいほど、より多くの書き込み操作が必要になります。その他の原因不明の速度低下が見つかった場合は、お試しください。この値を 32768 に増やします。

memcache.default_port string

memcache サーバーに接続するとき、ポートが指定されていない場合は、このデフォルトの TCP ポートが使用されます。

memcache.hash_strategy string

キーをサーバーにマッピングするときに使用する戦略を制御します。この値を一貫して設定すると、ハッシュ アルゴリズムを一貫して使用できるようになり、サーバーがプールへの変数の追加または削除を受け入れるときに再マッピングされなくなります。古い戦略を使用する場合は、この値を標準の結果に設定します。

memcache.hash_function string

サーバーへのキー マッピング プロセスにどの hsah 関数が適用されるかを制御します。デフォルト値「crc32」は CRC32 アルゴリズムを使用し、「fnv」は FNV-1a アルゴリズムの使用を示します。

session.save_handler string

この値を memcache に設定することで、通信会話処理 (セッション ハンドラー) に memcache を使用するかどうかを決定します。

session.save_path string

通話ストレージに使用される各サーバー リンクの区切り記号を定義します (例: "tcp://host1:11211, tcp://host2:11211")。

各サーバー リンクには、Memcache::addServer() を使用してサーバーを追加するのと同様に、サーバーによって受け入れられるパラメーターを含めることができます。例: "tcp://host1:11211?persistent=1&weight=1&timeout=1& retry_interval=15 」。

1.3. memcache 定数リスト

memcache 定数リスト

名前 タイプ 説明 MEMCACHE_COMPRESSEDinteger Memcache::set( を使用するときに調整するために使用) )、::add()、および Memcache: :いくつかの関数の replace() 圧縮率。 MEMCACHE_HAVE_SESSIONinteger 通信セッション ハンドラーがその値の使用を許可されている場合は 1、それ以外の場合は値は 0 です。
2Memcache 関数の関数一覧 2.1.Memcache::connect2.1.1. 説明

bool Memcache :: connect ( string $host [ , int $port [ , int $timeout ]] )

memcache サーバーに接続します

2.1.2.パラメータ

$host(string) サーバーのドメイン名または IP

$port(int) サーバーの TCP ポート番号、デフォルト値は 11211 です

$timeout 接続 memcache プロセスの有効期限。デフォルト値の変更する前によく考えてください。避けるべき 1 memcache キャッシュの利点がすべて失われ、接続が非常に遅くなります。

2.1.3. 戻り値

成功した場合は true を返し、失敗した場合は false を返します

2.1.4. 例

$memcache_connect('memcache_host' , 11211 ); * OO API */
$memcache = new Memcache;
$memcache -> connect('memcache_host' , 11211 );

コードをコピーします
8d66cee7e3230486a263a81b6779bd4b2.12.Memcache::getStats2.12.1.说明

array Memcache :: getStats ([ string $type [ , int $slabid [ , int $limit ]]] )

获取最后添加服务器静态信息

2.12.2.参数

type 静态信息类型,有效值包括{reset, malloc, maps, cachedump, slabs, items, sizes},依照一定规则协议这个可选参数是为了方便开发人员查看不同类别的信息而输入的标题

slabid 用于按指定类型联合设置 cache 堆为有效的片到堆中。缓存堆被被命令绑定到服务器上并被严格的用于调试用途

limit 用于按指定类型联合设置 cache 堆为输入的数字所限制的大小到堆,默认值为 100

2.12.3.返回值

返回一个服务器静态信息数组,失败时返回 FALSE

2.13.Memcache::getServerStatus2.13.1.说明

int Memcache :: getServerStatus ( string $host [ , int $port ] )

通过输入的 host 及 port 来获取相应的服务器信息

2.13.2.参数

host 服务器域名或 IP

port 端口号,默认为 11211

2.13.3.返回值

返回服务器状态,0 为失败,其他情况返回非 0 数字

2.13.4. 例

& & lt ;? PHP

/ * OO API * /
$ Memcache = New Memcache -& gt;
/* 手続き型 API */ = memcache_connect('memcache_host' , 11211 );
echo memcache_get_server_status( $memcache , 'memcache_host' , 11211 ) ; コードをコピー

2.14.Memcache::getVersion2 .14.1. 説明

文字列 Memcache :: getVersion (void)

サーバーのバージョン番号情報を取得します

2.14.2. 戻り値

成功した場合はサーバーのバージョン番号文字列を返し、失敗した場合は FALSE を返します

2.14.3. php

/* OO API */

$memcache = new Memcache;

$memcache -> getVersion();

$memcache = memcache_connect('memcache_host' , 11211 );

echo memcache_get_version( $memcache );

コードをコピー

2.15.Mem cache::setCompressThreshold

bool Memcache: : setCompressしきい値 ( int $threshold [ , float $ min_ Savings ] )


圧縮制限を設定します
2.15.2. パラメータ
threshold は自動圧縮を制御する変数長の最小値を設定します

min_ Savings は最小圧縮率を指定します。値は 0 ~ 1 の間である必要があります。デフォルトは 0.2 で、圧縮率 20% を表します

2.15.3。 戻り値

成功した場合は TRUE、失敗した場合は FALSE を返します。

2.15.4. 例

/* OO API */

$memcache_obj -> addServer('memcache_host' , 11211 ); setCompressThreshold( 20000 , 0.2 );

/* 手続き型 API */

$memcache_connect('memcache_host' , 11211 );

memcache_set_compress_threshold( $memcache_obj , 20000 , 0.2 ); ;

コードをコピー

2.16.Memcache :: setServerParams2.16.1. 説明

bool Memcache :: setServerParams ( string $host [ , int $port [ , int $timeout [ , int $retry_interval [ , bool $status [ , callback $failure_callback ]]]] )

codeコード後に追加されたコード
memcacheバージョン2.1.0、ランタイム中にサーバーパラメーターを設定します
2.16.2。非常に遅いです。

retry_interval サーバー接続が失敗した場合の再試行頻度。デフォルトは 15 秒に 1 回です。拡張機能が dl() 経由で動的にロードされると、自動再試行が無効になります。また、常時接続設定パラメータは無効となります。 障害が発生した各サーバーには、有効期限が切れるまでの独自の有効期間があり、バックエンド リクエストを選択すると、そのリクエストはスキップされ、リクエストは処理されません。期限切れになった接続は、正常に再接続されるか、次回の再試行まで失敗としてマークされます。この効果は、ページを提供するときの各 Web サーバーの子プロセスの再試行接続が、独自の再試行頻度に関連していることを意味します。

status このパラメータを FALSE に設定し、retry_interval を -1 に設定すると、接続に失敗したサーバーが、応答しないリクエストが失敗することを示すサーバー プールに配置される可能性があります。失敗したサーバーの設定として [設定] を受け入れます。デフォルトのパラメーターは TRUE です。これは、サーバーをオンラインとして定義できることを意味します。

failure_callback 関数の 2 つのパラメータは、失敗したサーバーのホスト名とポートです。

2.16.3 戻り値

成功した場合は TRUE を返し、失敗した場合は FALSE を返します。

2.16.4.范の例

function _callback_memcache_failure( $host , $port )
{
print " memcache " $host : $port " ; 失敗しました。
}
/* OO API */
$memcache = 新しい Memcache;
// オフライン モードでサーバーを追加します
$memcache -> addServer(‘memcache_host‘ , 11211 , FALSE , 1 , 1 , - 1 , FALSE );
// サーバーをオンラインに戻します
$memcache -> setServerParams(‘memcache_host‘ , 11211 , 1 , 15 , TRUE , ‘_callback_memcache_failure‘);
/* 手続き型 API */
$memcache_obj = memcache_connect(‘memcache_host‘ , 11211 );
memcache_set_server_params( $memcache_obj , ‘memcache_host‘ , 11211 , 1 , 15 , TRUE , ‘_callback_memcache_failure‘);
?>

复制代

2.17.Memcache::increment2.17.1.说明

int Memcache :: increment ( string $key [ , int $value ] )

给指定キーの存在1 つの増加値、その量がそうでない場合数字は数字に変換されず、この増加値はその変化量に加えられるため、新しい変化量は存在せず、圧縮保存された量に対しては、対応する取得方法が失われるため、この関数を使用する必要はありません。

2.17.2. パラメータ

key が保存する鍵

var 値、整型は直接保存され、その他の型は順序化されて保存されます

2.17.3. 値を返す

成功した場合は新しい値を返し、失敗した場合は FALSE を返します。

2.17.4.范の例

php
/* 手続き型 API */
$memcache_obj = memcache_connect(‘memcache_host‘ , 11211 );
/* カウンターを 2 ずつ増分します */
$current_value = memcache_increment( $memcache_obj , ‘counter‘ , 2 );
/* OO API */
$memcache_obj = 新しい Memcache;
$memcache_obj -> connect('memcache_host' , 11211 );
/* カウンターを 3 ずつインクリメントします */
$current_value = $memcache_obj ->インクリメント('カウンター' , 3 );
?>

复制代

2.18.Memcache::decrement2.18.2.说明

int Memcache :: decrement ( string $key [ , int $value ] )

给指定キー増分操作による保存量同様に、この値は数値に変換された後に減算され、新しい値は 0 より小さくならず、圧縮保存された量に対してこの関数を対応する値として使用する必要はありません。

2.18.2. パラメータ

key が保存する鍵

var 値、整型は直接保存され、その他の型は順序化されて保存されます

2.18.3. 値を返す

正常に新しい量を返す、失敗FALSE を返します。

2.18.4.例

/* 手続き型 API */
$memcache_obj = memcache_connect(‘memcache_host‘ , 11211 );
/* アイテムを 2 ずつ減分します */
$new_value = memcache_decrement( $memcache_obj , ‘test_item‘ , 2 );
/* OO API */
$memcache_obj = 新しい Memcache;
$memcache_obj -> connect('memcache_host' , 11211 );
/* 項目を 3 ずつ減らす */
$new_value = $memcache_obj -> decrement(‘test_item‘ , 3 );
?>

复制代码

2.19.memcache_debug2.19.1.说明

bool memcache_debug ( bool $on_off )

memcache の設定が正しいかどうかPHP のインストール時に使用されているかどうかの影響を受ける -- 値は TRUE または FALSE です。

2.19.2.パラメータ

on_off は、評価モードが開始されているかどうかを設定します。TRUE は開始され、FALSE は停止します。返還

php のインストール時に --enable-debug を使用した場合は TRUE が返され、そうでない場合は FALSE が返されます。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート