php-Memcached のインストールと使用
1. 導入とインストール
memcached は、高性能の分散メモリ オブジェクト キャッシング システムであり、通常、データベースの読み込み負荷を軽減し、動的 Web アプリケーションの応答速度を向上させるために使用されます。
この拡張機能は、libmemcached ライブラリによって提供される API を使用して、memcached サーバーと対話します。また、セッション ハンドラー (memcached) も提供します。
memcached のインストールについては、この記事を参照してください: Ubuntu での memcached のインストールと構成。
PHP 拡張機能 memcached をインストールする前に、libmemcached をインストールする必要があります。libmemcached は、memcached の C/C++ ローカル クライアント ライブラリです。
libmemcached をインストールする前に、まず libcloog-ppl0 をインストールする必要があります。そうしないと、コンパイルとインストールのプロセス中にエラーが発生します:
sudo apt-get install libcloog-ppl0
その後、必要な libmemcached ソース コード インストール パッケージをここ http://libmemcached.org/libMemcached からダウンロードします。 html を展開し、ディレクトリを指定してディレクトリを入力し、次のコマンドを実行します。
./configure --prefix=/usr/local/libmemcached make sudo make install
次に、php の memcached 拡張機能をインストールできます。 http://pecl から必要なソース コードのインストール パッケージをダウンロードします。 php.net/package/memcached を指定し、指定されたディレクトリに解凍し、そのディレクトリに入り、次の手順を実行します。
phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached make sudo make install
インストール プロセス中にエラーが報告される場合があります:
未知类型名称:memcached_server_instance_st
により make が失敗する 解決策は次のとおりです。
memcached 拡張機能解凍ディレクトリでこのファイル php_libmemcached_compat.h を見つけて、その中に次の行を追加します
typedef const struct memcached_server_st *memcached_server_instance_st;
make をもう一度実行すると、OK になります。
インストールが成功したら、php.ini に extension=memcacached を追加し、Apache を再起動し、phpinfo を確認して、次のセクション
を参照して、インストールが成功したことを証明します。
2. タイムアウト
一部のストレージ コマンドには、サーバーに送信されるときに有効期限値 (要素またはクライアント操作リクエストに関連する) が含まれます。このような用途では、送信される実際の値は Unix タイムスタンプ (1970 年 1 月 1 日から有効期限までの秒数の整数) または今からの秒数になります。後者の場合、この秒数は 60×60×24×30 (30 日の秒数) を超えることはできません。無効な値がこの値より大きい場合、サーバーはそれを実際の Unix タイムスタンプとして扱います。現在時刻からのオフセット。
有効期限値が 0 (デフォルト) に設定されている場合、この要素は期限切れになりません (ただし、他の新しい要素にスペースを割り当てるためにサーバーによって削除される可能性があります)。
3. コールバック
1. 結果コールバック
Result コールバック メソッドは、Memcached::getDelayed() メソッドまたは Memcached::getDelayedBykey() メソッドを通じて要素を取得した後、結果セット内の要素ごとに 1 回呼び出されます。 コールバック関数は、配列で記述された Memcached オブジェクトと要素情報を受け取ることができます。このコールバック関数は情報を返す必要はありません。
例 #1 結果コールバックの例
<?php $m = new Memcached(); $m->addServer('localhost', 11211); $items = array( 'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3' ); $m->setMulti($items); $m->getDelayed(array('key1', 'key3'), true, 'result_cb'); function result_cb($memc, $item) { var_dump($item); } ?>
上記ルーチンの出力は次のようになります:
array(3) { ["key"]=> string(4) "key1" ["value"]=> string(6) "value1" ["cas"]=> float(49) } array(3) { ["key"]=> string(4) "key3" ["value"]=> string(6) "value3" ["cas"]=> float(50) }
2. リードスルーキャッシュコールバック
リードスルーキャッシュコールバックは、要素がサーバーから取得されないときに呼び出されます。このコールバック関数は、Memcached オブジェクト、要求されたキー、および参照によって渡される値変数の 3 つのパラメーターを受け取ります。このコールバック関数は、キーに値がない場合に true または false を返してデフォルト値を設定することを決定します。 コールバックが true を返した場合、Memcached は「送信パラメータ」(参照によって渡される値変数) に格納されている値を memcached サーバーに格納し、元の呼び出し関数に返します。 Memcached::get() および Memcached::getByKey() のみがこのタイプのコールバックをサポートします。これは、Memcache プロトコルが複数のキーを要求するときに取得されていないキーに関する情報の提供をサポートしていないためです。
例 #2 コールバックの例を読んでください
<?php $m = new Memcached(); $m->addServer('localhost', 11211); $profile_info = $m->get('user:'.$user_id, 'user_info_cb'); function user_info_cb($memc, $key, &$value) { $user_id = substr($key, 5); /* 从数据库读取个人信息 */ /* ... */ $value = $profile_info; return true; } ?>
4. セッションのサポート
memcached は、ユーザー セッション データを memcached サーバーに保存するために使用できるカスタム セッション プロセッサを提供します。 完全に別個の memcached インスタンスが内部で使用されるため、必要に応じて別のサーバー プールをセットアップできます。セッション キーは、プレフィックス memc.sess.key の下に保存されるため、セッションと通常のキャッシュに同じサーバー プールを使用している場合は、この点に注意してください。 注釈: セッションが通常のキャッシュから分離されるもう 1 つの理由は、通常のキャッシュが memcached サーバーをいっぱいにするときに、セッションがキャッシュから追い出され、ユーザーが不可解に切断される可能性があることです。
session.save_handler は memcached に設定され、memcached のセッションプロセッサを有効にします。 session.save_path は、カンマ区切りの hostname:port スタイルのセッション キャッシュ サーバー プールを定義します (例: "sess1:11211, sess2:11211")。
5. Memcached クラス
は、memcached サービス クラスターへの接続を表します。
Memcached::add — 新しいキーに要素を追加します
Memcached::addByKey — 指定されたサーバー上の新しいキーに要素を追加します
Memcached::addServer — サーバーをサーバープールに追加します
Memcached::addServers — 複数のサーバーをサーバー プールに追加します
Memcached::append — 既存の要素にデータを追加します
Memcached::appendByKey — 指定されたサーバー上の既存の要素にデータを追加します
Memcached:: cas — 比較と値を交換する
Memcached::casByKey — 指定されたサーバー上の値を比較および交換する
Memcached::__construct — Memcached インスタンスを作成する
Memcached::decrement — 数値要素の値をデクリメントする
Memcached: : decrementByKey — 特定のサーバーに保存されている数値アイテムの値をデクリメントします
Memcached::delete — 要素を削除します
Memcached::deleteByKey — 指定されたサーバーから要素を削除します
Memcached::deleteMulti — 複数のアイテムを削除します
Memcached : :deleteMultiByKey — 特定のサーバーから複数のアイテムを削除します
Memcached::fetch — 次の結果をフェッチします
Memcached::fetchAll — 残りの結果をすべてフェッチします
Memcached::flush — キャッシュ内のすべての要素を無効化します
Memcached: :get — 要素を取得します
Memcached::getAllKeys — すべてのサーバーに保存されているキーを取得します
Memcached::getByKey — 特定のサーバーから要素を取得します
Memcached::getDelayed — 複数の要素をリクエストします
Memcached :: getDelayedByKey — 指定されたサーバーから複数の要素をリクエストします
Memcached::getMulti — 複数の要素を取得します
Memcached::getMultiByKey — 特定のサーバーから複数の要素を取得します
Memcached::getOption — Memcached のオプション値を取得します
Memcached: :getResultCode — 最後の操作の結果コードを返します
Memcached::getResultMessage — 最後の操作の結果説明メッセージを返します
Memcached::getServerByKey — キーによってマップされたサーバー情報を取得します
Memcached::getServerList — Getサーバープール内のサーバーのリスト
Memcached::getStats — サーバープールの統計を取得します
Memcached::getVersion — サーバープール内のすべてのサーバーのバージョン情報を取得します
Memcached::increment — 値を増やします数値要素の
Memcached::incrementByKey — 特定のサーバーに保存されている数値項目の値を増分します
Memcached::isPersistent — memcache への永続的な接続が使用されているかどうかを確認します
Memcached::isPristine — インスタンスが使用されているかどうかを確認します最近作成されました
Memcached::prepend — 既存の要素にデータを追加します
Memcached::prependByKey — 特定のサーバー上の既存の項目にデータを追加します
Memcached::quit — 開いている接続をすべて閉じます
Memcached::replace —キーの下に存在する要素を置換
Memcached::replaceByKey — 特定のサーバー上の既存のキーの下にある項目を置換します
Memcached::resetServerList — サーバーリストからすべてのサーバーをクリアします
Memcached::set — 要素を保存します
Memcached ::setByKey — アイテムを特定のサーバーに保存します
Memcached::setMulti — 複数の要素を保存します
Memcached::setMultiByKey — 複数のアイテムを特定のサーバーに保存します
Memcached::setOption — memcached オプションを設定します
Memcached : :setOptions — Memcached のオプションを設定します
Memcached::setSaslAuthData — 認証に使用する資格情報を設定します
Memcached::touch — アイテムに新しい有効期限を設定します
Memcached::touchByKey — アイテムに新しい有効期限を設定します特定のサーバー

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

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

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
