クイックスタート: Node.js で Azure Cache for Redis を使用する
このクイック スタートでは、Azure 内の任意のアプリケーションからアクセスできるセキュリティで保護された専用キャッシュにアクセスするために、Azure Cache for Redis を Node.js アプリに組み込みます。
GitHub のコードにスキップする
この記事をスキップしてすぐにコードをご覧になりたい方は、GitHub にある Node.js のクイックスタートを参照してください。
前提条件
- Azure サブスクリプション - 無料アカウントを作成する
- node_redis。これは
npm install redis
コマンドでインストールできます。
他の Node.js クライアントを使用する例については、 Node.js Redis クライアントに関するセクションに記載されている Node.js クライアントの個々のドキュメントを参照してください。
キャッシュの作成
キャッシュを作成するには、Azure portal にサインインし、 [リソースの作成] を選択します。
[新規] ページで、 [データベース] を選択し、 [Azure Cache for Redis] を選択します。
[新規 Redis Cache] ページで、新しいキャッシュの設定を構成します。
設定 値を選択する 説明 サブスクリプション ドロップダウンで、ご自身のサブスクリプションを選択します。 この新しい Azure Cache for Redis インスタンスが作成されるサブスクリプション。 リソース グループ ドロップ ダウンでリソース グループを選択するか、 [新規作成] を選択し、新しいリソース グループの名前を入力します。 その中にキャッシュやその他のリソースを作成するリソース グループの名前。 すべてのアプリ リソースを 1 つのリソース グループに配置することで、それらをまとめて簡単に管理または削除できます。 DNS 名 一意の名前を入力します。 キャッシュ名は 1 から 63 文字の文字列で、数字、英字、ハイフンのみを使用する必要があります。 名前の先頭と末尾には数字または文字を使用する必要があり、連続するハイフンを含めることはできません。 キャッシュ インスタンスの "ホスト名" は、<DNS 名>.redis.cache.windows.net になります。 場所 ドロップ ダウンで場所を選択します。 キャッシュを使用する他のサービスの近くのリージョンを選択します。 キャッシュの種類 ドロップ ダウンでレベルを選択します。 レベルによって、キャッシュに使用できるのサイズ、パフォーマンス、および機能が決まります。 詳細については、Azure Cache for Redis の概要に関するページを参照してください。 [ネットワーク] タブを選択するか、ページの下部にある [ネットワーク] ボタンを選択します。
[ネットワーク] タブで、接続方法を選択します。
[次へ: 詳細] タブを選択するか、ページの下部にある [次へ: 詳細] ボタンを選択します。
Basic または Standard のキャッシュ インスタンスの [詳細] タブで、非 TLS ポートを有効にする場合は有効トグルをオンにします。 また、使用する Redis のバージョンを 4 または 6 から選択できます。
Premium キャッシュ インスタンスの [詳細] タブで、非 TLS ポート、クラスタリング、データ永続化の設定を構成します。 また、使用する Redis のバージョンを 4 または 6 から選択できます。
ページの下部にある [次へ: タグ] タブを選択するか、ページの下部にある [次へ: タグ] ボタンを選択します。
必要に応じて、 [タグ] タブで、リソースを分類する場合は名前と値を入力します。
[Review + create](レビュー + 作成) を選択します。 [確認および作成] タブが表示され、Azure によって構成が検証されます。
緑色の検証に成功のメッセージが表示された後、 [作成] を選択します。
キャッシュが作成されるまで、しばらく時間がかかります。 Azure Cache for Redis の [概要] ページで進行状況を監視できます。 [状態] に "実行中" と表示されている場合は、キャッシュを使用する準備ができています。
Azure portal からホスト名、ポート、アクセス キーを取得する
Azure Cache for Redis サーバーに接続するには、キャッシュ クライアントにキャッシュのホスト名、ポート、およびキーが必要です。 クライアントによっては、これらの項目を参照するための名前が若干異なる場合があります。 ホスト名、ポート、およびキーは Azure portal から取得できます。
アクセス キーを取得するには、キャッシュの左側のナビゲーションから [アクセス キー] を選択します。
ホスト名とポートを取得するには、キャッシュの左側のナビゲーションから [プロパティ] を選択します。 ホスト名は、<DNS 名>.redis.cache.windows.net の形式になります。
[ホスト名] と [プライマリ] アクセス キーの環境変数を追加します。 コードに機密情報を直接含める代わりに、これらの変数をコードから使用します。
set REDISCACHEHOSTNAME=contosoCache.redis.cache.windows.net
set REDISCACHEKEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
キャッシュに接続する
node_redis の最新のビルドでは、TLS を使用した Azure Cache for Redis への接続をサポートしています。 次の例では、TLS エンドポイント 6380 を使用して Azure Cache for Redis に接続する方法を示しています。
var redis = require("redis");
// Add your cache name and access key.
var client = redis.createClient(6380, process.env.REDISCACHEHOSTNAME,
{auth_pass: process.env.REDISCACHEKEY, tls: {servername: process.env.REDISCACHEHOSTNAME}});
コード内の操作ごとに新しい接続を作成しないでください。 可能な限り接続を再利用してください。
新しい Node.js アプリを作成する
redistest.js という名前の新しいスクリプト ファイルを作成します。 npm install redis bluebird
コマンドを使用して、必要なパッケージをインストールします。
次の例の JavaScript をファイルに追加します。 このコードでは、キャッシュ ホスト名とキー環境変数を使用して Azure Cache for Redis のインスタンスに接続する方法を示しています。 コードでは、キャッシュ内の文字列値の格納および取得も行います。 PING
および CLIENT LIST
コマンドも実行されます。 Redis と node_redis クライアントの他の使用例については、https://redis.js.org/ を参照してください。
var redis = require("redis");
async function testCache() {
// Connect to the Azure Cache for Redis over the TLS port using the key.
var cacheHostName = process.env.REDISCACHEHOSTNAME;
var cachePassword = process.env.REDISCACHEKEY;
var cacheConnection = redis.createClient({
// rediss for TLS
url: "rediss://" + cacheHostName + ":6380",
password: cachePassword,
});
await cacheConnection.connect();
// Perform cache operations using the cache connection object...
// Simple PING command
console.log("\nCache command: PING");
console.log("Cache response : " + await cacheConnection.ping());
// Simple get and put of integral data types into the cache
console.log("\nCache command: GET Message");
console.log("Cache response : " + await cacheConnection.get("Message"));
console.log("\nCache command: SET Message");
console.log("Cache response : " + await cacheConnection.set("Message",
"Hello! The cache is working from Node.js!"));
// Demonstrate "SET Message" executed as expected...
console.log("\nCache command: GET Message");
console.log("Cache response : " + await cacheConnection.get("Message"));
// Get the client list, useful to see if connection list is growing...
console.log("\nCache command: CLIENT LIST");
console.log("Cache response : " + await cacheConnection.sendCommand(["CLIENT", "LIST"]));
console.log("\nDone");
process.exit();
}
testCache();
Node.js でスクリプトを実行します。
node redistest.js
次の例では、Message
キーは、前に Azure portal の Redis コンソールを使って設定されたキャッシュ値を持っていたことがわかります。 アプリは、そのキャッシュ値を更新しました。 また、アプリは PING
および CLIENT LIST
コマンドも実行しました。
リソースをクリーンアップする
次のチュートリアルに進む場合は、このクイックスタートで作成されたリソースを保持し、それを再利用できます。
クイックスタートのサンプル アプリケーションの使用を終える場合は、課金を避けるために、このクイックスタートで作成した Azure リソースを削除することができます。
重要
いったん削除したリソース グループを元に戻すことはできません。リソース グループとそこに存在するすべてのリソースは完全に削除されます。 間違ったリソース グループやリソースをうっかり削除しないようにしてください。 このサンプルをホストするためのリソースを、保持するリソースが含まれる既存のリソース グループ内に作成した場合、リソース グループを削除する代わりに、左側で各リソースを個別に削除できます。
Azure portal にサインインし、 [リソース グループ] を選択します。
[名前でフィルター] テキスト ボックスにリソース グループの名前を入力します。 この記事の手順では、TestResources という名前のリソース グループを使用しました。 結果一覧でリソース グループの [...] を選択し、 [リソース グループの削除] を選択します。
リソース グループの削除の確認を求めるメッセージが表示されます。 確認のためにリソース グループの名前を入力し、 [削除] を選択します。
しばらくすると、リソース グループとそこに含まれているすべてのリソースが削除されます。
次のステップ
このクイック スタートでは、Node.js アプリケーションから Azure Cache for Redis を使用する方法を説明しました。 ASP.NET Web アプリと Azure Cache for Redis を使用するには、次のクイック スタートに進みます。