このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
データのキャッシュの基礎
永続性は、サーバー インスタンスで実行されている MATLAB® コードの呼び出し間にデータをキャッシュするためのメカニズムを提供します。"永続性サービス" はサーバー インスタンスとは別に実行され、手動で開始および停止できます。"接続名" は、サーバー インスタンスを永続性サービスにリンクします。永続性サービスは、データを保存するために "永続性プロバイダー" を使用します。現在、サポートされている永続性プロバイダーは Redis™ のみです。接続名を MATLAB アプリケーション コードで使用することで、リンクされた永続性サービスに "データ キャッシュ" を作成します。
データのキャッシュの一般的なワークフロー
手順 | コマンド ライン | ダッシュボード |
---|---|---|
1. ファイル mps_cache_config を作成する | 手動で JSON ファイルを作成して、サーバー インスタンスの config フォルダーに配置します。ファイル名に拡張子 .json は含めないでください。 | 自動的に作成されます。 |
2. 永続性サービスを開始する |
テストの目的で、 |
|
3. データ キャッシュを作成する | mps.cache.connect を使用してデータ キャッシュを作成します。 | mps.cache.connect を使用してデータ キャッシュを作成します。 |
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 でのテスト ワークフロー
永続性プロバイダーとして 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
(MATLAB Production Server) を使用してシステム コマンド ラインから永続性サービスを開始するか、ダッシュボードで次の手順を実行できます。この例では、サーバー インスタンスが既定のホストとポート localhost:9910
を使用すると仮定しています。
Production Server コンパイラ アプリまたは
mcc
を使用してファイルmyCounter.m
をパッケージ化します。アーカイブ (
myCounter.ctf
ファイル) をサーバーにデプロイします。カウンターをテストします。MATLAB デスクトップから MATLAB 関数実行のための RESTful API (MATLAB Production Server) を使用してサーバーの呼び出しを行うことができます。
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
| mps.cache.DataCache
| mps.sync.TimedMATFileMutex
| mps.sync.TimedRedisMutex
| mps.cache.control
| mps.cache.connect
| mps.sync.mutex