PHP操作memcache

Jun 23, 2016 pm 02:33 PM

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 );

コードをコピーします
ddfa36c21e5fd62e7688477b376fe67b2.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 が返されます。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

See all articles