セールス: 1-800-867-1380

併置型キャッシュの使用方法

更新日: 2015年3月

次の手順では、併置型の memcached 対応キャッシュを使用するアプリケーションの作成方法を説明します。

アプリケーションの外観は次のようになります。

Hello World サンプルの Caching

キャッシュのデプロイ トポロジには主に次の 2 つがあります。併置と専用。併置型ロールは、他の非キャッシュ アプリケーション コードとサービスもホストします。専用ロールはキャッシュにのみ使用されるワーカー ロールです。専用のキャッシュを使用するアプリケーションの作成方法の詳細については、「専用キャッシュの使用方法」を参照してください。

Azure でのキャッシュに関するその他の情報については、「Azure キャッシュ」を参照してください。

  1. Azure の Hello World アプリケーションを Eclipse で作成する」の説明に従って、動的な Web アプリケーションを作成します。

  2. Azure の Hello World アプリケーションを Eclipse で作成する」の説明に従って、アプリケーションの Azure プロジェクトを作成します。

  3. Memcache クライアント JAR を Java ビルド パスに外部 JAR ライブラリとして追加します。

  4. デプロイ アセンブリに Memcache クライアント JAR を追加します。

  5. Azure ロールのプロパティを開いて、併置型キャッシュを有効にします。Azure プロジェクトを展開し、WorkerRole1 のコンテキスト メニューを開き、[Azure] をクリックし、[キャッシュ] をクリックします。[キャッシュ] プロパティ ダイアログ ボックスで、[併置型キャッシュを有効にする] をクリックします。既定値を使用します。その他の値を使用する場合は、「Caching properties」を参照してください。値セットの例を次に示します。

    Caching のプロパティ

    [OK] をクリックして設定を保存し、[キャッシュ] プロパティ ダイアログ ボックスを閉じます。

  6. 次のコードを使用するように index.jsp を変更します。

    <%@ page import="java.net.*" %>
    <%@ page import="java.util.concurrent.*" %>
    <%@ page import="net.spy.memcached.*" %>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <%
        // Retrieve the current time in milliseconds.
        long timeMillis = System.currentTimeMillis();
        // Retrieve the role instance ID.
        String currentRoleInstanceID = System.getenv("RoleInstanceID");
        // Create an instance of the memcached client.
        MemcachedClient c = new MemcachedClient(new InetSocketAddress("localhost_WorkerRole1", 11211));
        // Create a string based on the current time and the current role instance ID. 
        String s = timeMillis + " - " + currentRoleInstanceID;
    
        String cachedString = null;
        Future<Object> obj = null;
        String keyName = "myText";
    
        // Retrieve and display the currently cached value.
        obj = c.asyncGet(keyName);
        try
        {
        cachedString = (String)obj.get(5, TimeUnit.SECONDS);
        }
        catch (TimeoutException e)
        {
        obj.cancel(false);
        // Take other action as needed.
        }
        
        out.println("Getting from cache: myText = " + cachedString + "<p/>");
    
        // Set the cached value to the current time and role instance ID. -->
        out.println("Setting to cache: myText = " + s + "<p/>");
        
        c.set(keyName, 3600, s);
        // Retrieve and display the newly cached value.
        obj = c.asyncGet(keyName);
        try
        {
            cachedString = (String)obj.get(5, TimeUnit.SECONDS);
        }
        catch (TimeoutException e)
        {
            obj.cancel(false);
        }
        out.println("Getting from updated cache: myText = " + cachedString + "<p/>");
    %>
    </body>
    </html>
    
  7. Windows オペレーティング システムで Eclipse を使用している場合は、コンピューティング エミュレーターでアプリケーションを実行できます。そのためには、Azure ツール バーで [Azure エミュレーターで実行] アイコンをクリックします。コンピューティング エミュレーターでアプリケーションを実行したら、アプリケーションの localhost URL を起動します。ブラウザーを更新すると、値がキャッシュに保持されていることを確認できます。(注:コンピューティング エミュレーターは Windows でのみ使用できます。

  8. Azure で実行するには、まず、[キャッシュ] プロパティ ダイアログ ボックスを開き、[Storage] セクションのドロップダウン リストから [(自動)] を選択します。手順 5. でストレージ アカウント名を [(自動)] (既定値) に設定した場合、キャッシュの構成では [Azure への発行] ダイアログ ボックスで選択したものと同じストレージ アカウントが自動的に使用されます。あるいは、ここで、特定の Azure ストレージ アカウントを選択してもかまいません。[キャッシュ] プロパティ ダイアログ ボックスを閉じたら、Azure ツール バーで [Azure クラウドへの発行] アイコンをクリックし、プロンプトに従ってデプロイを完了します。アプリケーションを Azure クラウド サービスとして実行した後、アプリケーションの URL を起動します。ブラウザーを更新すると、値がキャッシュに保持されていることを確認できます。

    noteメモ
    [(auto)] 設定の場合、Eclipse ツールキットの発行ウィザードを使用してデプロイメントを発行した場合にのみ、目的の効果が得られます。Azure の管理ポータルなどの外部メカニズムを使用して手動で .cspkg ファイルを発行した場合、デプロイメントは正しく機能しません。

関連項目

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2015 Microsoft