Azure Redis Cache

15300 ワード

2014年9月1日にAzure Shared Cacheサービスを停止しますので、その前にAzure Redis Cacheに移動する必要があります.Azure Redis Cacheは以下の2つの階層の製品を含む.
  • 基本版–シングルノード、マルチ仕様.
  • 標準版–メイン/スレーブダブルノード、マルチ仕様.標準層の製品は99.9%のSLAを持っています.
  • 具体的な文書はhttp://azure.microsoft.com/zh-cn/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/
  • を参照してください.
    StockExchange.Redis NuGetパッケージを使ってキャッシュクライアントを設定します。
    Visual Studioで開発された.NETアプリケーションはStockExchange.Redisキャッシュクライアントを使用してキャッシュにアクセスすることができます.
  • クライアントアプリケーションをVisual Studioで設定するために、StockExchange.Redis NuGetパッケージを使用して、「ソリューションリソースマネージャ」の右クリックして、「NuGetパッケージを管理する」を選択してください.
  • 「オンライン検索」テキストボックスにStocExchange.Redisを入力し、結果からそれを選択して「インストール」をクリックします.
  • NuGetパッケージは、StockExchange.Redisキャッシュクライアントを使用してAzure Redis Cache
  • にアクセスするためにクライアントアプリケーションに必要なプログラムセット参照をダウンロードして追加します.
    Connection Multiplxer類接続キャッシュを使う
    Azure Redis Cacheでは、キャッシュ接続はConnectionMultiplexerクラスで管理されている.Azure Redis Cacheの例に接続するには、以下に示すように、静的ConnectionMultiplexer.Connect方法を呼び出して終了点と鍵に伝達してください.
    ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("yhdcache0.redis.cache.windows.net,ssl=true,password=...");
    ConnectionMultiplexerは、クライアント・アプリケーション全体で共有し、繰り返し使用するように設計されているので、動作が実行されるたびに作成する必要はない.インスタンスを作成した後にキャッシュを呼び出すたびに接続する必要があると、性能が低下します.
    アプリケーションにおいてConnectionMultiplexerの例を共有する方法は、以下に示すように、静的属性を使用して接続されたインスタンスを返すことである.このように、ConnectionMultiplexerが接続を切断すると、新しい接続例を初期化することができる.
    private static ConnectionMultiplexer connection;
    private static ConnectionMultiplexer Connection 
    {
        get
        {
            if(connection == null || !connection.IsConnected)
            {
                connection = ConnectionMultiplexer.Connect("yhdcache0.redis.cache.windows.net,ssl=true,password=...");
            }
            return connection;
        }
    }
           SSL     /     ,              ,     ssl=false。               ,    Stock Exchange.Redis  モデル.     ,     ConnectionMultiplexer.GetDatabase       Redis Cache       。  GetDatabase                  ,       。
    IDatabase cache = Connection.GetDatabase();
    
    // Perform cache operations using the cache object...
    // Simple put of integral data types into the cache
    cache.StringSet("key1", "value");
    cache.StringSet("key2", 25);
    
    // Simple get of data types from the cache
    string key1 = cache.StringGet("key1");
    int key2 = (int)cache.StringGet("key2");
    <!--&菗13;
    .csharpcode.csharpcode pre&唴13;
    {啝13
    font-size:small;&唵13;
    カラー:black;
    font-family:consosolas、「Courier New」、courier、monoospace;
    background-カラー:&菗菗13;
    //white-space:pre;*/&噫13;
    }&{13;
    .csharp code pre{margin:0 em;}&萶13;
    .csharrpcode.rem{color=0000 ff}&菷13;
    .csharpcode.kwrd{color=blue 0000 ff}&菗13;
    .csharpcode.str{color=blue 006080}&菷13;
    .csharpcode.op{color=0000 c 0}&菗13;
    .csharpcode.preproc{color=0000 cc 6633;}&菷13;
    .csharpcode.asp{background-カラー}と菗13;
    .csharrpcode.{啱800000;}&唵13;
    .csharpcode.atr{color=0000 ff}&菗13;
    .csharpcode.alt&啝13;
    {啝13
    background-色:菗f 4 f 4;&萶13;
    width:100%&菗13;
    margin:0 em;
    }&{13;
    .csharpcode.lnum{color=blue 6060}&菷13;
    -->
    <!--&菗13;
    .csharpcode.csharpcode pre&唴13;
    {啝13
    font-size:small;&唵13;
    カラー:black;
    font-family:consosolas、「Courier New」、courier、monoospace;
    background-カラー:&菗菗13;
    //white-space:pre;*/&噫13;
    }&{13;
    .csharp code pre{margin:0 em;}&萶13;
    .csharrpcode.rem{color=0000 ff}&菷13;
    .csharpcode.kwrd{color=blue 0000 ff}&菗13;
    .csharpcode.str{color=blue 006080}&菷13;
    .csharpcode.op{color=0000 c 0}&菗13;
    .csharpcode.preproc{color=0000 cc 6633;}&菷13;
    .csharpcode.asp{background-カラー}と菗13;
    .csharrpcode.{啱800000;}&唵13;
    .csharpcode.atr{color=0000 ff}&菗13;
    .csharpcode.alt&啝13;
    {啝13
    background-色:菗f 4 f 4;&萶13;
    width:100%&菗13;
    margin:0 em;
    }&{13;
    .csharpcode.lnum{color=blue 6060}&菷13;
    -->
     
    StockExchange.Redisクライアントは、RedisKeyおよびRedisValueタイプを使用して、キャッシュにおいてアイテムにアクセスおよび格納する.これらのタイプはほとんどの基本言語タイプ(stringを含む)にマッピングされ、通常は直接使用されない.Redis Stringsは最も基本的なRedis値タイプであり、複数のデータタイプ(プログレッシブされたバイナリストリームを含む)を含むことができる.このタイプは直接には使えないかもしれませんが、名前にはStringという方法が含まれています.ここで最も一般的な方法はStringSetおよびStringGetである.
    // Simple put of integral data types into the cache
    cache.StringSet("key1", "value");
    cache.StringSet("key2", 25);
    
    // Simple get of data types from the cache
    string key1 = cache.StringGet("key1");
    int key2 = (int)cache.StringGet("key2");
    <!--&菗13;
    .csharpcode.csharpcode pre&唴13;
    {啝13
    font-size:small;&唵13;
    カラー:black;
    font-family:consosolas、「Courier New」、courier、monoospace;
    background-カラー:&菗菗13;
    //white-space:pre;*/&噫13;
    }&{13;
    .csharp code pre{margin:0 em;}&萶13;
    .csharrpcode.rem{color=0000 ff}&菷13;
    .csharpcode.kwrd{color=blue 0000 ff}&菗13;
    .csharpcode.str{color=blue 006080}&菷13;
    .csharpcode.op{color=0000 c 0}&菗13;
    .csharpcode.preproc{color=0000 cc 6633;}&菷13;
    .csharpcode.asp{background-カラー}と菗13;
    .csharrpcode.{啱800000;}&唵13;
    .csharpcode.atr{color=0000 ff}&菗13;
    .csharpcode.alt&啝13;
    {啝13
    background-色:菗f 4 f 4;&萶13;
    width:100%&菗13;
    margin:0 em;
    }&{13;
    .csharpcode.lnum{color=blue 6060}&菷13;
    -->
    Azure Redis Cacheは使用できます.NETオブジェクトと基本データタイプですが、NETオブジェクトは、プログレッシブされた後にのみキャッシュされます.これはアプリケーション開発者の役割です.このように、開発者はフレキシブルにプログラムを選択することができます.以下の例では、キャッシュオブジェクトの前に、StackExchange.Redis.IDatabaseタイプの拡張クラスおよびBinary Formaterを使用して、これらのオブジェクトの順序付けを簡略化する.
    public static class SampleStackExchangeRedisExtensions
    {
        public static T Get<T>(this IDatabase cache, string key)
        {
            return Deserialize<T>(cache.StringGet(key));
        }
    
        public static object Get(this IDatabase cache, string key)
        {
            return Deserialize<object>(cache.StringGet(key));
        }
    
        public static void Set(this IDatabase cache, string key, object value)
        {
            cache.StringSet(key, Serialize(value));
        }
    
        static byte[] Serialize(object o)
        {
            if(o == null)
            {
                return null;
            }
    
            BinaryFormatter binaryFormatter = new BinaryFormatter();
            using (MemoryStream memoryStream = new MemoryStream())
            {
                binaryFormatter.Serialize(memoryStream, o);
                byte[] objectDataAsStream = memoryStream.ToArray();
                return objectDataAsStream;
            }
        }
    
        static T Deserialize<T>(byte[] stream)
        {
            if(stream == null)
            {
                return default(T);
            }
    
            BinaryFormatter binaryFormatter = new BinaryFormatter();
            using (MemoryStream memoryStream = new MemoryStream(stream))
            {
                T result = (T)binaryFormatter.Deserialize(memoryStream);
                return result;
            }
        }
    }
    RedisValueタイプはバイト配列を直接使用することができ、したがって、Getヘルププログラム方法を呼び出すと、オブジェクトをバイトストリームに順序付けてキャッシュする.アイテムを検索すると、アイテムはオブジェクトに再プログレッシブ化され、呼び出しプログラムに戻ります.
    AS.NETセッション状態のアプリケーション
  • Redis Cacheセッション状態NuGetパッケージを使用して、Visual Studioにクライアントアプリケーションを設定します.「ソリューションリソースマネージャ」で項目を右クリックし、「NuGetパッケージを管理する」を選択してください.
  • 「オンライン検索」テキストボックスにRedis Cache Session Stateを入力し、結果からそれを選択してインストールをクリックします.NuGetパッケージは、必要なプログラムセット参照をダウンロードして追加し、ASP.NETアプリケーションの構成を含むweb.co.figファイルに以下の部分を追加して、Redis Cacheセッション状態でプログラムを提供します.
  • <sessionState mode="Custom" customProvider="MySessionStateStore">
          <providers>
            <!--
              <add name="MySessionStateStore" 
                host = "127.0.0.1" [String]
                port = "" [number]
                accessKey = "" [String]
                ssl = "false" [true|false]
                throwOnError = "true" [true|false]
                retryTimeoutInMilliseconds = "0" [number]
              />
            -->
            <add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="127.0.0.1" accessKey="" ssl="false" />
          </providers>
        </sessionState>
    これらの属性をAzureで管理し、必要に応じて他の値を設定します.
  • host–キャッシュの終了点を指定します.
  • port–あなたの非SSLポートまたはSSLポートを使って、具体的にはsslの設定に依存します.
  • accessKey–キャッシュのマスターキーまたは補助鍵を使用する.
  • ssl–SSL保護キャッシュ/クライアント通信を利用するなら、trueに設定します.そうでなければfalseに設定します.必ず正しいportを指定してください.
  • throwOnError–もし故障が発生した時に異常を投げたいなら、trueとする.retryTimeoutInMillisecondsによって指定された再試行時間間隔で動作を再試行することが望ましいならば、falseとする.
  • retryTimeoutInMillisecondsthrowOnErrorをfalseに設定すると、システムはこの時間間隔(ミリ秒単位)で動作を再試行する.
  •  
    MVC movie app with Azure Redis Cache in 15 minutes
    http://wacel.codeplex.com/
    Redisはどうやって利用すればいいですか?
    Redisキャッシュ、Azure災害復旧、ラベル、SQLDB弾力率、ドキュメントデータベース
    Redisプログラミング実践【pub/sub】
    Spring mvc Data Redis-Pub/Sub(ウェブプロジェクトのソース付き)
    https://github.com/cargomedia/socket-redis
     
    <!--&菗13;
    .csharpcode.csharpcode pre&唴13;
    {啝13
    font-size:small;&唵13;
    カラー:black;
    font-family:consosolas、「Courier New」、courier、monoospace;
    background-カラー:&菗菗13;
    //white-space:pre;*/&噫13;
    }&{13;
    .csharp code pre{margin:0 em;}&萶13;
    .csharrpcode.rem{color=0000 ff}&菷13;
    .csharpcode.kwrd{color=blue 0000 ff}&菗13;
    .csharpcode.str{color=blue 006080}&菷13;
    .csharpcode.op{color=0000 c 0}&菗13;
    .csharpcode.preproc{color=0000 cc 6633;}&菷13;
    .csharpcode.asp{background-カラー}と菗13;
    .csharrpcode.{啱800000;}&唵13;
    .csharpcode.atr{color=0000 ff}&菗13;
    .csharpcode.alt&啝13;
    {啝13
    background-色:菗f 4 f 4;&萶13;
    width:100%&菗13;
    margin:0 em;
    }&{13;
    .csharpcode.lnum{color=blue 6060}&菷13;
    -->