コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
未作成ページ
おまかせ表示
ヘルプ
MonoBook
検索
検索
ログイン
個人用ツール
ログイン
ログアウトした編集者のページ
もっと詳しく
投稿記録
トーク
「
パーシステンス
」を編集中
ページ
議論
日本語
閲覧
編集
ソースを編集
履歴表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
編集
ソースを編集
履歴表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
2016年4月1日 (金) 07:45時点における
122.18.176.120
(
トーク
)
による版
(
→ASP.NET: RedisSessionProvider
)
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
'''パーシステンス'''([[英語]]:persistence)とは、直訳すると「存続」という意味である。 ==概要== [[ウェブ]]の世界でパーシステンスという場合は、ほぼ[[ロードバランサー]]を咬ました複数台の[[HTTPサーバー]]で[[セッション]]を共有するためのセッションサーバー、およびその構築方法をさしている。明示的に「セッション・パーシステンス」などと記載している事例も見受けられる。 ==ハードウェアで対応== パーシステンスの主な実現方法としては高性能な[[ロードバランサー]]製品を用いる方法がある。高性能なロードバランサー製品には接続は同一のHTTPサーバーにだけ接続しつづけるという機能が付いている。これを使えば共有セッションを保持する[[サーバー]]を用意しなくても個々のサーバー内で完結できる。また[[アプリケーション]]側での対応が不要であるため[[プロプライエタリ]]なものや、[[プログラム]]の改変をしている場合じゃねぇ[[デスマーチ]]に陥った案件などでは活躍する。 ==アプリケーションで対応== [[アプリケーション]]でパーシステンスに対応する方法としては[[データベース]]に[[セッション]]を保存するという方法がある。この際に用いる[[データベース]]は一般的な[[RDBMS]]でもよいが、[[セッション]]という単純な[[データ構造]]、かつ頻繁な読み書き、かつ[[スケールアウト]]したい要件では[[Redis]]などの[[NoSQL]]を用いるのが現実的である。 ===PHP: memcached=== [[PHP]]では[[セッション]]の保存先に[[memcached]]を指定できる。memcachedを別サーバーにすることでHTTPサーバーを[[DNSラウンドロビン]]で単純に複数台設置しても簡単に対応できる。 php.iniで設定するのが手軽である。 session.save_handler = memcached // コメントアウトをはずす session.save_path = "tcp://localhost:11211" // 追記 ===ASP.NET: ASP.NET State Service=== [[Windows Server]]に[[IIS]]を入れると「ASP.NET State Service」というサービスが出来上がる。これはIISの一部なのでWindows Serverでなければ利用できない。このため開発機が普通の[[Windows]]であったり、[[Mono]]や.[[NET Core]]などへの対応を考慮すると極めて非推奨である。 サービスを立ち上げてWeb.configのsessionStateに以下のような設定を加えることで利用できる。 <source lang="xml"> <?xml version="1.0" encoding="UTF-8" ?> <configuration> <system.web> <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" stateNetworkTimeout="10" /> </system.web> </configuration> </source> ===ASP.NET: RedisSessionProvider=== [[マイクロソフト]]は[[Redis]]でセッションを管理する[[ライブラリ]](セッションプロバイダー)を[[オープンソース]]として公開している。 * https://www.nuget.org/packages/Microsoft.Web.RedisSessionStateProvider マイクロソフトの意図としては[[Azure]]でのセッション管理にAzure Redis Cacheを使えという思し召しなのだろう。Azure Redis Cacheはいたって普通のRedisなのでローカルにRedisサーバーを立ち上げてもそのまま利用できる。いたって普通のRedisなのでプラットフォームに依存せず、[[スケールアウト]]もする。現状でもっとも推奨される方法であると思われる。 利用には[[NuGet]]から入れられるのが手っ取り早い。 * Microsoft.Web.RedisSessionStateProvider * https://www.nuget.org/packages/Microsoft.Web.RedisSessionStateProvider 設定方法はマイクロソフトの公式サイトに日本語の資料があるのでこれを見るのが手っ取り早い。 *https://azure.microsoft.com/ja-jp/documentation/articles/cache-asp.net-session-state-provider/ ==関連項目== *[[ロードバランサー]] ==参考文献== {{reflist}} {{stub}}
編集内容の要約:
MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MonoBook:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の確認用の質問に回答してください (
詳細
):
1たす1は?(全角で入力してください)
キャンセル
編集の仕方
(新しいウィンドウで開きます)
本文の横幅制限を有効化/無効化