---
title: "ウォークスルー:Redisプロバイダーを使った共有セッション状態データベースの設定"
slug: "walkthrough--configuring-a-shared-session-state-database-using-the-redis-provider"
abstract: "SQLサービスプロバイダーをプライベートセッション状態ストアとして使う方法を学びましょう。"
---
# ウォークスルー:Redisプロバイダーを使った共有セッション状態データベースの設定

共有セッション状態では、複数のセッション間で共有可能なすべてのデータ、例えば連絡先に関するデータは収集され、セッション状態データベースに保存されます。

連絡先は複数の並行訪問を行うことができ、その場合各訪問は独自のプライベートセッション状態を持ちます。しかし、訪問間で連絡先情報を共有することもあります。

同じ連絡先が並列訪問間で共有される情報は、共有セッションの状態ストアに保存されます。このデータは依然として連絡先にとってプライベートですが、同じ連絡先が作成したすべての現在のセッションからアクセス可能です。

このウォークスルーでは、RedisのSitecoreセッションステートプロバイダーを使って、プロセス外の共有セッションステートストアとしてRedisを使う方法を説明します。XPオンプレミスは、セッションステートプロバイダーとしてRedisをサポートしており、ホスト型デプロイメントオプションとしてAzure管理のRedisも含まれます。

このウォークスルーでは、以下の方法を説明します:

-   共有のRedisセッションデータベースを展開する
-   Sitecoreの設定
-   専用のRedis Session Processingサーバーを設定
-   Redisのプロバイダー設定を調整してください

> !注SitecoreはRedis Clusterをサポートしていません。

## 共有セッションデータベースの展開

Sitecore ASP.NETセッションステートストアプロバイダーは、Redisをセッションステートストアとして使うことを可能にします。プロバイダーはSessionEndイベントをサポートしており、xDBはウェブサイト訪問を追跡する必要があります。

> !重要設定ファイルに直接変更を加えないでください。代わりに、実行中に必要な変更を行う[パッチファイル](https://doc.sitecore.com/xp/ja/developers/101/platform-administration-and-architecture/use-a-patch-file-to-customize-the-sitecore-configuration.html "Use a patch file to customize the Sitecore configuration") を作成しなければなりません。

Redisセッションデータベースを展開するには:

1.  管理されたRedisか[Redisオンプレミ](https://redis.io/)スAzureどちらかを選べます。 [Microsoft Azureウェブサイト](https://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/) の指示や [、Redis Azure PowerShell](https://azure.microsoft.com/en-us/documentation/articles/cache-howto-manage-redis-cache-powershell/)を使ってAzureのプロビジョニングが可能です。
    
2.  <sitename>\\Website\\App\_Configフォルダに行き、ConnectionStrings.configファイルを開き、以下の接続文字列を追加してください:
    
    <add name="sharedSession" connectionString="\_host\_:\_port\_number \_" />
    
3.  接続文字列をセッションデータベースを指すように設定してください。
    
4.  変更を保存してください。
    

## Sitecoreの設定

デフォルトの共有セッションストアは、イン *プロセス* プロバイダーを使用し、これはメモリにデータを保存し、内部のASP.NETクラスInProcSessionStateStoreで実装されています:

<sharedSessionState defaultProvider="inProc">
 <providers>
 <clear/>
 <add name="inProc"
 type="System.Web.SessionState.InProcSessionStateStore"
 />
 </providers>

SitecoreをRedisの共有セッションステートプロバイダーを使用するように設定するには:

1.  ウェブサイトのルートフォルダで、App\_Config\\Sitecore\\Marketing.Trackingフォルダに移動します。
    
2.  Sitecore.Analytics.Tracking.Configファイルを開け。
    
3.  デフォルトの共有セッション状態プロバイダーを定義できる行を次のパスで見つけてください: sitecore/tracking/sharedSessionState。
    
4.  sharedSessionStateセクションをdefaultProviderとして*Redis*(inProcではなく)に更新してください。また、名前属性の値をredisに変更する必要があります。以下の例に示されています。
    
    <sharedSessionState defaultProvider="redis">
     <providers>
     <clear />
     <add name="redis"
     type="Sitecore.SessionProvider.Redis.RedisSessionStateProvider,
     Sitecore.SessionProvider.Redis"
     connectionString="sharedSession"
     pollingInterval="2"
     applicationName="shared" />
     </providers>
    </sharedSessionState>
    

> !重要設定ファイルに直接変更を加えないでください。代わりに、実行中に必要な変更を行う [パッチファイル](https://doc.sitecore.com/xp/ja/developers/101/platform-administration-and-architecture/use-a-patch-file-to-customize-the-sitecore-configuration.html "Use a patch file to customize the Sitecore configuration") を作成しなければなりません。

## Redisのプロバイダー設定を調整してください

[Redisプロバイダー設定の参照](https://doc.sitecore.com/xp/ja/developers/101/platform-administration-and-architecture/redis-provider-settings-reference.html "Redis provider settings reference")を使ってセッション状態を設定してください。すべて正しく設定されていれば、最初のウェブリクエストの後にセッションレコードがRedisのセッションデータベースに表示されます。

> !注共有セッションの状態プロバイダーにlockAgeMilliseconds="15000" を設定し、最小限の時間で接触ロックを強制します。値は次のようになります。 sitecore/tracking/sharedSessionState/config/maxLockAge (default=5000) + Analytics.MaxAcceptedClockDeviation (default=10000)