検索
ホームページバックエンド開発PHPの問題PHP に付属するキャッシュ システムの詳細な紹介: APCu 拡張機能

この記事では、PHP: APCu 拡張機能に付属するキャッシュ システムについて詳しく説明します。一定の参考値があるので、困っている友達が参考になれば幸いです。

PHP に付属するキャッシュ システムの詳細な紹介: APCu 拡張機能

毎日のキャッシュ、トラフィックへの抵抗、または一般的に使用されるホットスポット データの保存に、memcached や redis などのキャッシュ システムを誰もが使用したことがあると思います。プロジェクトに合わせて、PHP は私たちのためにシンプルなキャッシュ システムも用意しており、日常的な通常規模のサイトの開発を十分に処理できます。この拡張セットは APCu 拡張です。

APCu 拡張機能

APCu 拡張機能は、APC 拡張機能のアップグレードであり、現在はメンテナンスされていません。拡張機能の両方のセットは、実際にはオペコード キャッシュに基づいています。つまり、PHP 自体のオペコードによって実装されるキャッシュ機能です。

APCu のインストールは、通常の PHP 拡張機能とまったく同じで、非常に簡単です。最も重要なことは、この拡張機能が非常に小さいことです。ダウンロードとインストールはどちらも数秒で完了します。したがって、小規模プロジェクトに非常に便利に適用でき、PHP によってネイティブにサポートされており、ポートなどの追加構成は必要ありません。

メソッドの説明

キャッシュ システムが一般的に備えている追加、削除、クエリ、および自動増加の機能はすべて APCu 拡張機能に実装されています。

  • #apcu_add — 新しいキャッシュを作成します

  • apcu_cache_info —APCu

  • ## のすべてのキャッシュ情報を表示します # apcu_cas — キャッシュされた値を新しい値に更新します
  • apcu_clear_cache — すべてのキャッシュをクリアします
  • apcu_dec — キャッシュされた値をデクリメントします
  • apcu_delete — キャッシュされたコンテンツを削除します
  • apcu_enabled — 現在の環境で APCu キャッシュが有効かどうか
  • apcu_entry —キャッシュ エンティティをアトミックに生成する
  • apcu_exists — キャッシュが存在するかどうかを確認する
  • apcu_fetch — キャッシュをクエリする
  • apcu_inc — キャッシュ値の自動インクリメント
  • apcu_sma_info — キャッシュされた共有メモリ情報のクエリ
  • apcu_store — キャッシュの保存
  • #使用デモ

apcu_add("int", 1);
apcu_add("string", "I'm String");
apcu_add("arr", [1,2,3]);

class A{
    private $apc = 1;
    function test(){
        echo "s";
    }
}

apcu_add("obj", new A);

var_dump(apcu_fetch("int"));
var_dump(apcu_fetch("string"));
var_dump(apcu_fetch("arr"));
var_dump(apcu_fetch("obj"));
通常の使い方は比較的簡単で、各種データを追加すると普通にキャッシュに保存できます。ただし、オブジェクトや JSON を文字列にシリアル化せずに、オブジェクトを APCu キャッシュに直接保存できることに注意してください。システムが自動的にオブジェクトをシリアル化します。

apcu_add(string \$key ,mixed $var [, int $ttl = 0 ]) メソッドは通常通りキャッシュを追加します。$ttl は有効期限を秒単位で設定できます。設定されていない場合は、長期的に有効になります。 APCu のキャッシュ時間制限は 1 つの CLI 内で有効であるため、CLI を再度呼び出すと、最後の CLI で設定されたキャッシュ コンテンツは取得されないことに注意してください。 PHP-FPMでは、PHP-FPMまたはFastCGIを再起動するとキャッシュが無効になります。

次に、あまり一般的ではないメソッドのテストに焦点を当てます。

apcu_cas("int", 1, 2);
var_dump(apcu_fetch("int"));

// Warning  apcu_cas() expects parameter 2 to be int
apcu_cas("string", "I'm String", "I'm  New String");

apcu_cas(string $key, int $old, int $new) は、$old 値を $new 値に変更します。変更できるのは数値型の内容のみです。文字列変更の場合は、 、エラーが報告されます。この機能の利点は何ですか?その最大の利点は、アトミックであること、つまり、高い同時実行性の影響を受けないことです。これに似ているのが apcu_store(string $key,mixed $var [, int $ttl = 0]) メソッドですが、このメソッドはキャッシュの内容を変更するだけです。キャッシュ キーが存在しない場合は、新しいキャッシュ キーを作成します。型による制限はなく、もちろんアトミックではありません。

apcu_entry("entry", function($key){
    return "This is " . $key;
});
var_dump(apcu_fetch("entry"));

apcu_entry(string $key , callable $generator [, int $ttl = 0 ]) この関数の機能は、匿名関数 $generator を実行し、$key のキャッシュが存在しない場合に $key を変更することです。それをキー値として渡し、コンテンツを生成してこのキャッシュの値として返します。

var_dump(apcu_cache_info());

最後に、現在のシステム内のすべての APCu キャッシュ情報を表示したい場合は、apcu_cache_info() 関数を直接使用できます。

概要

キャッシュ内に大量のデータがある場合、ループ クエリやキャッシュ情報の関連統計の実行を容易にする APCUIterator イテレータも提供します。つまり、このシステムは非常に便利な小規模キャッシュ システムであり、日常の開発でいくつかの小さな機能を試してみることができます。

テスト コード:

https://github.com/zhangyue0503/dev-blog/blob/master/php/202004/source/%E6%88%91%E4%BB%AC%E4%B9%9F%E6%9C%89%E8%87%AA%E5%B8%A6%E7%9A%84%E7%BC%93%E5%AD%98%E7%B3%BB%E7%BB%9F%EF%BC%9APHP%E7%9A%84APCu%E6%89%A9%E5%B1%95.php

推奨学習:

php ビデオ チュートリアル

以上がPHP に付属するキャッシュ システムの詳細な紹介: APCu 拡張機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
酸とベースデータベース:違いとそれぞれを使用するタイミング。酸とベースデータベース:違いとそれぞれを使用するタイミング。Mar 26, 2025 pm 04:19 PM

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。Mar 26, 2025 pm 04:18 PM

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

PHP入力検証:ベストプラクティス。PHP入力検証:ベストプラクティス。Mar 26, 2025 pm 04:17 PM

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

PHP APIレート制限:実装戦略。PHP APIレート制限:実装戦略。Mar 26, 2025 pm 04:16 PM

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

PHPパスワードハッシュ:password_hashおよびpassword_verify。PHPパスワードハッシュ:password_hashおよびpassword_verify。Mar 26, 2025 pm 04:15 PM

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。Mar 26, 2025 pm 04:13 PM

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

PHP XSS予防:XSSから保護する方法。PHP XSS予防:XSSから保護する方法。Mar 26, 2025 pm 04:12 PM

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

PHPインターフェイスvs抽象クラス:それぞれを使用する時期。PHPインターフェイスvs抽象クラス:それぞれを使用する時期。Mar 26, 2025 pm 04:11 PM

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター