RedisをASP.NET SessionState,OutputCacheのストレージに設定する。

RedisをASP.NET SessionState,OutputCacheのストレージに設定する。

Nugetパッケージのインストール

Microsoft.Web.RedisSessionStateProvider、Microsoft.Web.RedisOutputCacheProvider を追加します。
パッケージを追加するとWeb.ConfigにSessionStateセクション、cachingセクションのコードが挿入されます。
既存のSessionStateセクション、cachingセクションの記述が消えるわけではないので注意してください。

Web.Configの書き換えを行う。

既存のSessionStateセクション、cachingセクションの記述を以下に切り替えます。
尚、シングルインスタンスかRedis-Clusterかによって書き方が若干異なります。

Snipet(SessionState Redis Single Instance)
    <sessionState mode="Custom" customProvider="CustomRedisSessionStateStore" cookieName="{任意のSessionStateのCookie名}" cookieless="false">
      <providers>
        <add name="CustomRedisSessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="{割り当てたいRedisホスト名 or IP}" accessKey="" port="{割り当てたいRedisポート番号}" ssl="false" applicationName = "{任意のApplication名}" databaseId = "0" connectionTimeoutInMilliseconds = "10000" />
      </providers>
    </sessionState>
Snipet(Output Cache Redis Single Instance)
    <caching>
      <outputCache defaultProvider="CustomRedisOutputCache">
        <providers>
          <add name="CustomRedisOutputCache" type="Microsoft.Web.Redis.RedisOutputCacheProvider" host="{割り当てたいRedisホスト名 or IP}" accessKey="" port="{割り当てたいRedisポート番号}" ssl="false" applicationName="{任意のApplication名}"  databaseId="1"  connectionTimeoutInMilliseconds="10000" />
        </providers>
      </outputCache>
    </caching>
Snipet(SessionState Redis Cluster)
    <sessionState mode="Custom" customProvider="CustomRedisSessionStateStore" cookieName="{任意のSessionStateのCookie名}" cookieless="false">
      <providers>
        <add name="CustomRedisSessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" connectionString="{PrimaryNodeのホスト名 or IP}:{PrimaryNodeのポート番号},{SecondaryNodeのホスト名 or IP}:{SecondaryNodeのポート番号}" accessKey="" ssl="false" applicationName="{任意のApplication名}" connectionTimeoutInMilliseconds="10000" />
      </providers>
    </sessionState>
Snipet(OutputCache Redis Cluster)
    <caching>
      <outputCache defaultProvider="CustomRedisOutputCache">
        <providers>
        <add name="CustomRedisOutputCache" type="Microsoft.Web.Redis.RedisOutputCacheProvider" connectionString="{PrimaryNodeのホスト名 or IP}:{PrimaryNodeのポート番号},{SecondaryNodeのホスト名 or IP}:{SecondaryNodeのポート番号}" accessKey="" ssl="false" applicationName="{設定したいApplication名}" connectionTimeoutInMilliseconds="10000" />
        </providers>
      </outputCache>
    </caching>