ホームページ バックエンド開発 PHPチュートリアル PHP データ キャッシュの永続ストレージと回復戦略の分析

PHP データ キャッシュの永続ストレージと回復戦略の分析

Aug 10, 2023 pm 11:46 PM
データキャッシュ 永続ストレージ 回復戦略

PHP データ キャッシュの永続ストレージと回復戦略の分析

PHP データ キャッシュの永続ストレージと回復戦略の分析

PHP アプリケーション開発において、データ キャッシュはアプリケーションのパフォーマンスと応答性を大幅に向上させる重要な最適化方法です。ただし、場合によっては、アプリケーションの再起動またはサーバーの再起動後にデータを復元できるように、キャッシュされたデータを永続的に保存する必要があります。この記事では、PHP データ キャッシュの永続ストレージと回復戦略をいくつか紹介し、対応するコード例を示します。

1. ファイル ストレージ

ファイル ストレージは、シンプルで一般的に使用される永続ストレージ方法であり、キャッシュ データをファイルの形式でサーバーのディスクに保存します。以下は、ファイル ストレージを使用するサンプル コードです。

function cache_get($key) {
    $cache_dir = '/path/to/cache/dir/';
    $file = $cache_dir . md5($key);
    
    if (file_exists($file)) {
        $data = file_get_contents($file);
        $cache = unserialize($data);
        if ($cache['expire'] < time()) {
            unlink($file);
            return false;
        }
        return $cache['data'];
    }
    return false;
}

function cache_set($key, $data, $expire = 3600) {
    $cache_dir = '/path/to/cache/dir/';
    $file = $cache_dir . md5($key);
    $cache = [
        'expire' => time() + $expire,
        'data' => $data
    ];
    $data = serialize($cache);
    file_put_contents($file, $data);
}
ログイン後にコピー

上記のコードでは、2 つの関数 cache_getcache_set を使用して、データの読み取りと書き込み操作を実現しています。 cache_getこの関数は、まず $key を MD5 暗号化してファイル名を生成し、次にファイルが存在するかどうかを確認し、存在する場合はファイルの内容を読み取り、キャッシュされたデータに逆シリアル化します。次に、キャッシュされたデータの有効期限が切れているかどうかを確認し、期限切れの場合はファイルを削除して false を返します。最後に、キャッシュされたデータが返されます。 cache_setこの関数は、まず $key を MD5 暗号化してファイル名を生成し、次にキャッシュ データと有効期限を連想配列として保存し、ファイルに書き込む前に配列を文字列にシリアル化します。最後に、file_put_contents 関数を使用して文字列をファイルに書き込みます。

2. データベース ストレージ

データベース ストレージは、一般的に使用されるもう 1 つの永続ストレージ方法であり、キャッシュされたデータをデータベース テーブルに保存します。以下は、データベース ストレージを使用するサンプル コードです。

function cache_get($key) {
    $db_host = 'localhost';
    $db_user = 'root';
    $db_password = 'password';
    $db_name = 'cache_db';
    
    $conn = mysqli_connect($db_host, $db_user, $db_password, $db_name);
    if (!$conn) {
        die('Database connection failed: ' . mysqli_connect_error());
    }
    
    $sql = "SELECT data FROM cache_table WHERE `key` = '$key' AND expire >= NOW()";
    $result = mysqli_query($conn, $sql);
    
    if (mysqli_num_rows($result) > 0) {
        $row = mysqli_fetch_assoc($result);
        return $row['data'];
    }
    
    return false;
}

function cache_set($key, $data, $expire = 3600) {
    $db_host = 'localhost';
    $db_user = 'root';
    $db_password = 'password';
    $db_name = 'cache_db';
    
    $conn = mysqli_connect($db_host, $db_user, $db_password, $db_name);
    if (!$conn) {
        die('Database connection failed: ' . mysqli_connect_error());
    }
    
    $expire_date = date('Y-m-d H:i:s', time() + $expire);
    $data = mysqli_real_escape_string($conn, $data);
    
    $sql = "INSERT INTO cache_table (`key`, data, expire) VALUES ('$key', '$data', '$expire_date')";
    mysqli_query($conn, $sql);
}
ログイン後にコピー

上記のコードでは、2 つの関数 cache_getcache_set を使用して、データの読み取りおよび書き込み操作を実現します。 cache_getこの関数は、まずデータベースとの接続を確立し、次に SQL ステートメントを通じて、対応するキャッシュ データがデータ テーブルに存在するかどうかをクエリします。クエリ結果にデータが存在する場合は、データ フィールドの値が返されます。 cache_set 関数は、まずデータベースへの接続を確立し、次に現在のタイムスタンプと有効期限の日付を取得し、mysqli_real_escape_string 関数を通じてデータをエスケープし、最後に SQL ステートメントを実行します。データをデータベーステーブルに挿入します。

3. メモリ ストレージ

メモリ ストレージは、効率的な永続ストレージ方法です。キャッシュされたデータをメモリに保存します。アプリケーションやサーバーが再起動された後でも、データはまだ回復できます。 。以下はメモリ ストレージを使用するサンプル コードです。

function cache_get($key) {
    $cacheObj = new Memcached();
    $cacheObj->addServer('localhost', 11211);
    
    $data = $cacheObj->get($key);
    return $data;
}

function cache_set($key, $data, $expire = 3600) {
    $cacheObj = new Memcached();
    $cacheObj->addServer('localhost', 11211);
    
    $cacheObj->set($key, $data, $expire);
}
ログイン後にコピー

上記のコードでは、2 つの関数 cache_getcache_set を使用してデータの読み取りと書き込み操作を実現しています。 cache_get 関数は、まず Memcached オブジェクトを作成し、addServer メソッドを通じて Memcached サーバーのアドレスとポートを追加します。次に、get メソッドを使用してメモリからキャッシュ データを取得し、データを返します。 cache_set 関数は、まず Memcached オブジェクトを作成し、addServer メソッドを通じて Memcached サーバーのアドレスとポートを追加します。次に、set メソッドを使用してデータをメモリに保存します。

結論

この記事では、ファイル ストレージ、データベース ストレージ、メモリ ストレージなどの PHP データ キャッシュの永続ストレージと回復戦略を紹介します。適切なストレージ方法を選択することで、実際のニーズに基づいてアプリケーションのパフォーマンスと応答性を向上させることができます。この記事が、PHP アプリケーション開発でデータ キャッシュを使用する際の読者の助けになれば幸いです。

以上がPHP データ キャッシュの永続ストレージと回復戦略の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

Baidu ブラウザでプライベート ブラウジング モードを有効にする方法 Baidu ブラウザでプライベート ブラウジング モードを有効にする方法 Jan 30, 2024 pm 12:03 PM

Baidu ブラウザのシークレット モードを設定するにはどうすればよいですか?インターネットをサーフィンしているときに、誰もがこのような状況に遭遇したことがあると思います。閲覧したページは履歴から簡単に見つかります。公共のコンピュータや他人にコンピュータを貸している場合、個人情報が簡単に公開されてしまいます。プライバシー。では、どうすれば自分の歴史を隠すことができるのでしょうか? Baidu ブラウザには、誰にとっても便利なシークレット モードがあります。このようにして、Web ページを閲覧するときに、閲覧の痕跡が残りません。 Baidu ブラウザでシークレット モードを設定する方法については、この Web サイトの編集者に従ってください。 Baidu ブラウザのシークレット モードに入る方法 1. ブラウザを開き、ブラウザ ページの右上隅にある三本の横線のアイコンをクリックします。 2. ドロップダウン メニューで、中央の [非表示ウィンドウ] 列をクリックします。

PHP および MySQL インデックスのデータ キャッシュとメモリ テーブルの最適化戦略と、それらがクエリ パフォーマンスに与える影響 PHP および MySQL インデックスのデータ キャッシュとメモリ テーブルの最適化戦略と、それらがクエリ パフォーマンスに与える影響 Oct 15, 2023 pm 12:01 PM

PHP および MySQL インデックスのデータ キャッシュとインメモリ テーブルの最適化戦略、およびそれらがクエリ パフォーマンスに及ぼす影響 はじめに: PHP と MySQL は、データベース駆動型アプリケーションを開発および最適化する際に非常に一般的な組み合わせです。 PHP と MySQL の間の対話では、インデックス データのキャッシュとメモリ テーブルの最適化戦略がクエリのパフォーマンスを向上させる上で重要な役割を果たします。この記事では、PHP および MySQL インデックスのデータ キャッシュとメモリ テーブルの最適化戦略を紹介し、クエリのパフォーマンスに与える影響を具体的なコード例を使用して詳しく説明します。

Vue プロジェクト開発におけるデータ キャッシュとローカル ストレージ エクスペリエンスの共有 Vue プロジェクト開発におけるデータ キャッシュとローカル ストレージ エクスペリエンスの共有 Nov 03, 2023 am 09:15 AM

Vue プロジェクト開発におけるデータ キャッシュとローカル ストレージのエクスペリエンスの共有 Vue プロジェクトの開発プロセスでは、データ キャッシュとローカル ストレージは 2 つの非常に重要な概念です。データ キャッシュによりアプリケーションのパフォーマンスが向上し、ローカル ストレージによりデータの永続的なストレージが実現されます。この記事では、Vue プロジェクトでデータ キャッシュとローカル ストレージを使用する際の経験と実践方法をいくつか共有します。 1. データ キャッシュ データ キャッシュは、後ですぐに取得して使用できるように、データをメモリに保存することです。 Vue プロジェクトでは、一般的に使用される 2 つのデータ キャッシュ方法があります。

PHP プロジェクトに適したデータ キャッシュ ソリューションを選択するにはどうすればよいですか? PHP プロジェクトに適したデータ キャッシュ ソリューションを選択するにはどうすればよいですか? Aug 10, 2023 pm 09:21 PM

PHP プロジェクトに適したデータ キャッシュ ソリューションを選択するにはどうすればよいですか?インターネットの急速な発展とビッグデータ時代の到来に伴い、データ アクセスとキャッシュを効率的に処理する方法が PHP プロジェクトにとって重要な問題となっています。一般的なパフォーマンス最適化方法として、データ キャッシュは Web サイトの応答速度とユーザー エクスペリエンスを効果的に向上させることができます。ただし、PHP プロジェクトに適したデータ キャッシュ ソリューションを選択する場合は、キャッシュ タイプ、データ アクセス モード、キャッシュ戦略などの一連の要素を考慮する必要があります。この記事では、これらの観点から選択する方法について説明します

PHP 開発におけるキャッシュ メカニズムとアプリケーションの実践 PHP 開発におけるキャッシュ メカニズムとアプリケーションの実践 May 09, 2024 pm 01:30 PM

PHP 開発では、キャッシュ メカニズムにより、頻繁にアクセスされるデータがメモリまたはディスクに一時的に保存され、データベース アクセスの数が削減され、パフォーマンスが向上します。キャッシュの種類には主にメモリ、ファイル、データベース キャッシュが含まれます。キャッシュは、組み込み関数またはサードパーティのライブラリ (cache_get() や Memcache など) を使用して PHP に実装できます。一般的な実用的なアプリケーションには、データベース クエリ結果をキャッシュしてクエリ パフォーマンスを最適化したり、ページ出力をキャッシュしてレンダリングを高速化したりすることが含まれます。キャッシュ メカニズムにより、Web サイトの応答速度が効果的に向上し、ユーザー エクスペリエンスが向上し、サーバーの負荷が軽減されます。

Javaファイル操作の詳しい説明 Javaファイル操作の詳しい説明 Feb 25, 2024 pm 12:00 PM

Java ファイルの読み取りおよび書き込み操作用のクラスの詳細な説明 Java プログラミングでは、ファイルの読み取りおよび書き込み操作は非常に一般的で重要な部分です。ファイルの読み取りおよび書き込み操作を通じて、データの永続的な保存、データの読み取り、ファイルのコピーおよび削除などの機能を実現できます。 Java には、ファイルの読み取りおよび書き込み操作をサポートするための多くのクラスとメソッドが用意されています。この記事では、Java ファイルの読み取りおよび書き込み操作によく使用されるいくつかのクラスを詳しく紹介し、具体的なコード例を示します。 File クラス File クラスは、ファイルやディレクトリを操作するために Java によって提供されるクラスであり、いくつかの共通の機能を提供します。

datファイルとはどのような種類のファイルですか? datファイルとはどのような種類のファイルですか? Feb 19, 2024 am 11:32 AM

dat ファイルは、さまざまな種類のデータを保存するために使用できる汎用データ ファイル形式です。 dat ファイルには、テキスト、画像、オーディオ、ビデオなどのさまざまなデータ形式を含めることができます。さまざまなアプリケーションやオペレーティング システムで広く使用されています。 dat ファイルは通常、データをテキストではなくバイト単位で保存するバイナリ ファイルです。これは、dat ファイルを変更したり、その内容をテキスト エディターで直接表示したりできないことを意味します。代わりに、dat ファイルのデータを処理および解析するには、特定のソフトウェアまたはツールが必要です。 d

Redis はデータベース データとの一貫性をどのように維持するか Redis はデータベース データとの一貫性をどのように維持するか Apr 19, 2024 pm 09:48 PM

Redis とデータベースのデータ整合性の維持は、次の方法で実現できます。 Redis パブリッシュ/サブスクライブ メカニズムを使用した定期的なデータ同期。 Redis Sentinel または Redis Cluster を使用した Redis トランザクションを使用します。 注意事項には、同期頻度、データベース トランザクションのサポート、データ整合性の監視、定期的な検査が含まれます。

See all articles