Main Content

データのキャッシュの基礎

永続性は、サーバー インスタンスで実行されている MATLAB® コードの呼び出し間にデータをキャッシュするためのメカニズムを提供します。"永続性サービス" はサーバー インスタンスとは別に実行され、手動で開始および停止できます。"接続名" は、サーバー インスタンスを永続性サービスにリンクします。永続性サービスは、データを保存するために "永続性プロバイダー" を使用します。現在、サポートされている永続性プロバイダーは Redis™ のみです。接続名を MATLAB アプリケーション コードで使用することで、リンクされた永続性サービスに "データ キャッシュ" を作成します。

データのキャッシュの一般的なワークフロー

手順コマンド ラインダッシュボード
1. ファイル mps_cache_config を作成する手動で JSON ファイルを作成して、サーバー インスタンスの config フォルダーに配置します。ファイル名に拡張子 .json は含めないでください。自動的に作成されます。
2. 永続性サービスを開始する

mps-cache を使用して永続性サービスを開始します。

テストの目的で、mps.cache.control (MATLAB Compiler SDK) を使用して永続性サービス コントローラー オブジェクトを作成できます。

  • 永続性サービスを作成します。

  • 接続名を使用して、サーバー インスタンスに永続性サービスを追加します。

  • 永続性サービスを開始します。

  • 永続性サービスに関連付けられた接続をサーバー インスタンスにアタッチします。

3. データ キャッシュを作成するmps.cache.connect (MATLAB Compiler SDK) を使用してデータ キャッシュを作成します。mps.cache.connect (MATLAB Compiler SDK) を使用してデータ キャッシュを作成します。

Redis を使用するためのサーバーの構成

Redis 構成ファイルの作成

システム コマンド プロンプトからオンプレミスのサーバー インスタンスの永続性サービスを開始する前に、mps_cache_config という名前の JSON ファイル (拡張子 .json なし) を作成し、サーバー インスタンスの config フォルダーに配置する必要があります。ダッシュボードを使用してオンプレミスのサーバー インスタンスおよびクラウドのサーバー デプロイを管理する場合、サーバーの作成時に mps_cache_config ファイルが自動的に作成されます。

mps_cache_config

{
  "Connections": {
    "<connection_name>": {
      "Provider": "Redis",
      "Host": "<hostname>",
      "Port": <port_number>,
      "Key": <access_key>  
    }
  }
}

JSON ファイルで <connection_name><hostname>、および <port_number> を指定します。ホスト名は、localhost または 、Azure® Redis キャッシュ リソースから取得したリモート ホスト名のいずれかになります。Redis に Azure Cache を使用する場合、アクセス キーを指定する必要があります。Azure Redis Cache を使用するには、Microsoft® Azure アカウントが必要です。

mps_cache_config ファイルで複数の接続を指定できます。各接続が一意の名前と一意の (ホスト、ポート) ペアをもつ必要があります。ダッシュボードを介して永続性サービスを使用する場合、ファイル mps_cache_config はサーバー インスタンスの config フォルダーに自動的に作成されます。

Windows 上で実行されるサーバー インスタンスの WSL のインストール

MATLAB Production Server™ インスタンスが Windows® マシン上で実行される場合、追加の構成が必要です。以下の構成は、Linux® 上および macOS 上で実行されるサーバー インスタンスには必要ありません。

  • Windows Subsystem for Linux (WSL) をインストールする必要があります。WSL のインストールの詳細については、Microsoft のドキュメンテーションを参照してください。

  • MATLAB Production Server ソフトウェアがネットワーク ドライブにインストールされている場合、WSL でネットワーク ドライブをマウントする必要があります。

例: データ キャッシュを使用したカウンターのインクリメント

この例では、永続性を使い、データ キャッシュを使用してカウンターをインクリメントする方法を説明します。MATLAB を使用するテスト ワークフローと、アクティブなサーバー インスタンスを必要とするデプロイ ワークフローの 2 つが例として挙げられています。

MATLAB Compiler SDK でのテスト ワークフロー

  1. 永続性プロバイダーとして Redis を使用する永続性サービスを作成し、サービスを開始します。

    ctrl = mps.cache.control('myRedisConnection','Redis','Port',4519)
    start(ctrl)
    
  2. キャッシュを作成してから、そのキャッシュを使用してカウンターを更新する MATLAB コードを記述します。ファイルに myCounter.m という名前を付けます。

     myCounter.m

  3. カウンターをテストします。

    for i = 1:5
        y(i) = myCounter('myCache','myRedisConnection');
    end
    y
    y =
    
         0    1     2     3     4

MATLAB Production Server を使用したデプロイ ワークフロー

永続性を使用するコードをサーバー インスタンスにデプロイする前に、永続性サービスを開始してサーバー インスタンスにアタッチします。mps-cache を使用してシステム コマンド ラインから永続性サービスを開始するか、ダッシュボードで次の手順を実行できます。この例では、サーバー インスタンスが既定のホストとポート localhost:9910 を使用すると仮定しています。

  1. Production Server コンパイラ アプリまたは mcc を使用してファイル myCounter.m をパッケージ化します。

  2. アーカイブ (myCounter.ctf ファイル) をサーバーにデプロイします。

  3. カウンターをテストします。MATLAB デスクトップから MATLAB 関数実行のための RESTful API を使用してサーバーの呼び出しを行うことができます。

    rhs = {['myCache'],['myRedisConnection']};
    body = mps.json.encoderequest(rhs,'Nargout',1);
    
    options = weboptions;
    options.ContentType = 'text';
    options.MediaType = 'application/json'; 
    options.Timeout = 30;
    
    for i = 1:5
    response = webwrite('http://localhost:9910/myCounter/myCounter', body, options);
    x(i) = mps.json.decoderesponse(response);
    end
    x = [x{:}]
    x =
    
         0    1     2     3     4

予想どおり、テスト環境ワークフローとデプロイ環境ワークフローの結果は同じです。

参考

(MATLAB Compiler SDK) | (MATLAB Compiler SDK) | (MATLAB Compiler SDK) | (MATLAB Compiler SDK) | (MATLAB Compiler SDK) | (MATLAB Compiler SDK) | (MATLAB Compiler SDK)

関連するトピック