このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
データのキャッシュの基礎
永続性は、サーバー インスタンスで実行されている MATLAB® コードの呼び出し間にデータをキャッシュするためのメカニズムを提供します。"永続性サービス" はサーバー インスタンスとは別に実行され、手動で開始および停止できます。"接続名" は、サーバー インスタンスを永続性サービスにリンクします。永続性サービスは、データを保存するために "永続性プロバイダー" を使用します。現在、サポートされている永続性プロバイダーは Redis™ のみです。接続名を MATLAB アプリケーション コードで使用することで、リンクされた永続性サービスに "データ キャッシュ" を作成します。
データのキャッシュの一般的なワークフロー
| 手順 | コマンド ライン | ダッシュボード |
|---|---|---|
1. ファイル mps_cache_config を作成する | 手動で JSON ファイルを作成して、サーバー インスタンスの config フォルダーに配置します。ファイル名に拡張子 .json は含めないでください。 | 自動的に作成されます。 |
| 2. 永続性サービスを開始する |
テストの目的で、 |
|
| 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 Production Server を実行する Windows ユーザー アカウントに対して WSL をインストールする必要があります。
例: データ キャッシュを使用したカウンターのインクリメント
この例では、永続性を使い、データ キャッシュを使用してカウンターをインクリメントする方法を説明します。MATLAB を使用するテスト ワークフローと、アクティブなサーバー インスタンスを必要とするデプロイ ワークフローの 2 つが例として挙げられています。
MATLAB Compiler SDK でのテスト ワークフロー
永続性プロバイダーとして Redis を使用する永続性サービスを作成し、サービスを開始します。
ctrl = mps.cache.control('myRedisConnection','Redis','Port',4519) start(ctrl)
キャッシュを作成してから、そのキャッシュを使用してカウンターを更新する MATLAB コードを記述します。ファイルに
myCounter.mという名前を付けます。カウンターをテストします。
for i = 1:5 y(i) = myCounter('myCache','myRedisConnection'); end y
y = 0 1 2 3 4
MATLAB Production Server を使用したデプロイ ワークフロー
永続性を使用するコードをサーバー インスタンスにデプロイする前に、永続性サービスを開始してサーバー インスタンスにアタッチします。mps-cache を使用してシステム コマンド ラインから永続性サービスを開始するか、ダッシュボードで次の手順を実行できます。この例では、サーバー インスタンスが既定のホストとポート localhost:9910 を使用すると仮定しています。
Production Server コンパイラ アプリまたは
mccを使用してファイルmyCounter.mをパッケージ化します。アーカイブ (
myCounter.ctfファイル) をサーバーにデプロイします。カウンターをテストします。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
予想どおり、テスト環境ワークフローとデプロイ環境ワークフローの結果は同じです。
参考
mps.cache.Controller (MATLAB Compiler SDK) | mps.cache.DataCache (MATLAB Compiler SDK) | mps.sync.TimedMATFileMutex (MATLAB Compiler SDK) | mps.sync.TimedRedisMutex (MATLAB Compiler SDK) | mps.cache.control (MATLAB Compiler SDK) | mps.cache.connect (MATLAB Compiler SDK) | mps.sync.mutex (MATLAB Compiler SDK)
