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では、キャッシュ接続は
アプリケーションにおいて
.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クライアントは、
.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オブジェクトは、プログレッシブされた後にのみキャッシュされます.これはアプリケーション開発者の役割です.このように、開発者はフレキシブルにプログラムを選択することができます.以下の例では、キャッシュオブジェクトの前に、
AS.NETセッション状態のアプリケーション Redis Cacheセッション状態NuGetパッケージを使用して、Visual Studioにクライアントアプリケーションを設定します.「ソリューションリソースマネージャ」で項目を右クリックし、「NuGetパッケージを管理する」を選択してください. 「オンライン検索」テキストボックスにRedis Cache Session Stateを入力し、結果からそれを選択してインストールをクリックします.NuGetパッケージは、必要なプログラムセット参照をダウンロードして追加し、ASP.NETアプリケーションの構成を含むweb.co.figファイルに以下の部分を追加して、Redis Cacheセッション状態でプログラムを提供します.
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;
-->
StockExchange.Redis NuGetパッケージを使ってキャッシュクライアントを設定します。
Visual Studioで開発された.NETアプリケーションはStockExchange.Redisキャッシュクライアントを使用してキャッシュにアクセスすることができます.
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セッション状態のアプリケーション
<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とする.retryTimeoutInMilliseconds
–throwOnError
を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;
-->