2017-03-22 8 views
0

Azure Redis Cacheを使用して、 "Multi Tenant MVC Application"の出力キャッシュを保存しようとしています。 Redisサーバーに格納されているキーを区別する方法が必要です。下のスクリーンショットを見て、TenantId_a2/*に注意してください。ここではキー名「TenantId」にプログラムで制御したいと思っています。Azure Redisキャッシュ動的アプリケーション名またはキー名

enter image description here

私は出力キャッシュのためのRedisを使用しています、私は、web.configファイルでRedisの出力キャッシュを設定する必要があるため、ここではスクリーンショット:

enter image description here

設定するための別の方法がありますアプリケーションコードからのキャッシュをredisしますが、それは出力キャッシュ用ではありません...確信しています。それはコードです:今

public class AzureRedisCache 
{ 
    private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() => 
    { 
     string configString = "********"; 
     var options = ConfigurationOptions.Parse(configString); 
     options.ClientName = "TenantId"; // GREAT :) 
     options.AllowAdmin = true; 
     return ConnectionMultiplexer.Connect(options); 
    }); 

    public static ConnectionMultiplexer Connection 
    { 
     get 
     { 
      return lazyConnection.Value; 
     } 
    } 
} 

これを呼び出すために、私達はちょうど私がどのような方法は、出力キャッシュまたは前記の要件を達成するためのいくつかの他の方法のために、このコードを使用するかどうかわからないんだけど

IDatabase cache = AzureRedisCache.Connection.GetDatabase(); 

を使用しています。提案してください。

答えて

0

このようなものをお探しですか?アプリケーション名を動的に設定すると効果がありますか?

OutputCacheSection ops = (OutputCacheSection)WebConfigurationManager.GetSection("system.web/caching/outputCache"); 
     ProviderSettings providerSettings = ops.Providers[0]; 
     providerSettings.Parameters["applicationName"] = "myDynamicApplicationName"; 
+0

明確にするために、上記のコードをアプリの起動ロジックに入れてください。これは、アプリの実行中にランダムに変更する必要がある設定ではありません(たとえば、顧客からの入力に基づいて)。 – JonCole

+0

あなたの返事をありがとう、これは正しいように見える、私はこれを試して更新されます。 –

+0

applicationNameに基づいてRedisからキャッシュを削除することはできますか? –

関連する問題