ホームページ > PHPフレームワーク > Workerman > Workerman でのデータ キャッシュに Memcached を使用する方法

Workerman でのデータ キャッシュに Memcached を使用する方法

WBOY
リリース: 2023-11-07 15:43:02
オリジナル
859 人が閲覧しました

Workerman でのデータ キャッシュに Memcached を使用する方法

Workerman でデータ キャッシュに Memcached を使用する方法

Memcached は、Web アプリケーションのパフォーマンスとスケーラビリティを向上させるためによく使用されるオープンソースの分散メモリ キャッシュ システムです。 Workerman は、リアルタイム通信アプリケーションの構築に使用できる高性能 PHP ソケット フレームワークです。この記事では、Workerman でデータ キャッシュに Memcached を使用する方法を紹介し、具体的なコード例を示します。

1. Memcached のインストールと構成

始める前に、Memcached をインストールして構成する必要があります。次のコマンドを使用して、Linux システムに Memcached をインストールできます。

sudo apt-get install memcached
ログイン後にコピー

インストールが完了したら、構成ファイル /etc/memcached.conf を編集し、リスニング IP とポート番号を設定し、次のコマンドを指定する必要があります。メモリサイズ。

-d
-p 11211
-l 127.0.0.1
-m 128
ログイン後にコピー

構成ファイルを保存し、Memcached サービスを再起動します。

2. Workerman のインストール

次に、Workerman フレームワークをインストールする必要があります。 Composer を使用して次のコマンドでインストールできます:

composer require workerman/workerman
ログイン後にコピー

3. Memcached を使用するコードを記述します

  1. cache.php という名前のファイルを作成し、次のコードを記述します:
<?php

require_once __DIR__.'/vendor/autoload.php';

use WorkermanWorker;
use WorkermanProtocolsHttp;

$worker = new Worker('http://0.0.0.0:8000');

$worker->onMessage = function ($connection, $request) {
    // 先尝试从缓存中获取数据
    $cache = new Memcached();
    $cache->addServer('127.0.0.1', 11211);
    $data = $cache->get($request->path());

    if ($data === false) {
        // 缓存中不存在数据,则从数据库中获取数据
        $data = get_data_from_database($request->path());

        // 将数据存入缓存
        $cache->set($request->path(), $data, 86400); // 缓存有效期为24小时
    }

    // 返回数据给客户端
    Http::header('Content-Type: application/json');
    Http::header('Cache-Control: max-age=86400'); // 设置浏览器缓存时间为24小时
    $connection->send(json_encode($data));
};

function get_data_from_database($path) {
    // 从数据库中获取数据的逻辑,此处省略
    return [
        'path' => $path,
        'data' => 'some data'
    ];
}

Worker::runAll();
ログイン後にコピー
  1. コマンドラインで次のコマンドを実行してサービスを開始します:
php cache.php start
ログイン後にコピー

4. テストコード

はブラウザを使用して送信できますまたは他のツールの HTTP リクエストを使用して、Memcached のデータ キャッシュ機能をテストします。たとえば、http://localhost:8000/foo にアクセスすると、データがデータベースから取得され、キャッシュに保存されます。再度 http://localhost:8000/foo にアクセスすると、キャッシュから直接データが取得されます。

上記の手順により、Workerman でのデータ キャッシュに Memcached を使用することができました。コード内の例は参考用のみであり、実際に使用する場合は、特定のビジネス ロジックに従って調整する必要があります。同時に、権限のない訪問者による悪意のある操作を避けるために、Memcached サービスのセキュリティの保護に注意を払う必要があります。

以上がWorkerman でのデータ キャッシュに Memcached を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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