ホームページ バックエンド開発 PHPチュートリアル memcache 同期セッションの手順 (この記事では PHP の例が使用されていますが、原理は Java と同じです)

memcache 同期セッションの手順 (この記事では PHP の例が使用されていますが、原理は Java と同じです)

Jun 13, 2016 pm 12:18 PM
cookie memcache nbsp session web

Memcache 同期セッション方式 (この記事では PHP の例を使用していますが、原理は Java と同じです)
以前に Windows Server 2003 ネットワーク負荷分散システムの構成方法について説明しましたので、サーバー クラスターを構成した後、 Web アーキテクチャでは、セッションの共有と同期の問題を考慮する必要があります。想像してみてください。負荷分散システムの同じ Web ページにアクセスする同じ IP が異なるサーバーに割り当てられ、セッションが同期されていない場合、同じログイン ユーザーに対してはログイン状態になり、その後、ログインステータスの問題ではありません。
この問題に対する 3 つの解決策を参考までに示します。
1. データベース同期セッションを使用する
マルチサーバー セッションの同期を行う場合は、この方法を使用しませんでした。
1. ローエンドのコンピューターを使用して、Web サーバーのセッションを保存するためのデータベースを構築するか、ユーザーが Web にアクセスするときにこの特別なデータベースをファイル サーバー上に構築します。サーバーは、セッション同期の目的を達成するために、この特別なデータベースにアクセスしてセッションのステータスを確認します。
2. この方法では、セッション ストレージ テーブルを他のデータベース テーブルと一緒に配置します。mysql もクラスター化されている場合、各 mysql ノードにはこのテーブルが必要であり、このセッション テーブルのデータ テーブルはリアルタイムで同期されます。
注: データベースを使用してセッションを同期すると、データベースの負荷が増大します。データベースにセッションを置くと、間違いなく状況が悪化します。上記の 2 つの方法のうち、最初の方法の方が優れています。これにより、セッションが保存されるテーブルが分離され、実際のデータベースへの負担が軽減されます
2 つ目は、Cookie を使用してセッションを同期します
セッションは、サーバー側ではファイルの形式で Cookie がクライアントに保存されます。同期を実現するにはどうすればよいですか?方法は非常に簡単で、Cookie を転送ステーションとして使用し、ユーザーのページへのアクセスによって生成されたセッションを Cookie に格納します。 Web サーバー A にアクセスすると、セッションが生成され、Cookie に保存されます。このとき、Web サーバー B はまずサーバーにセッションがあるかどうかを判断し、セッションがない場合はクライアントのセッションを確認します。存在しない場合は、セッションが実際に存在しないことを意味し、Cookie 内のセッションを Web サーバー B に同期して、セッションを同期できるようにします。
注: この方法は実装が簡単で便利であり、データベースへの負担は増加しません。ただし、クライアントが Cookie を無効にすると、セッションが同期されなくなり、Web サイトの Cookie のセキュリティが失われます。暗号化されていますが、それでも偽造可能です。
3. memcache を使用してセッションを同期する
Memcache はこの機能を持たない場合、セッションの同期に使用できません。 Web サーバー内のメモリを組み合わせて「メモリ プール」を形成できます。どのサーバーがセッソインを生成しても、この「メモリ プール」に配置することができ、他のサーバーを使用することもできます。
利点: この方法でセッションを同期すると、データベースの負荷が増加せず、Cookie を使用する場合と比較してセキュリティが大幅に向上します。セッションをメモリに保存する方が、ファイルから読み取るよりもはるかに高速です。
欠点: memcache はメモリをさまざまな仕様のストレージ ブロックに分割します。この方法では、memcache がメモリを完全に利用できないと判断され、ストレージ ブロックが不足するとメモリの断片も生成されます。 .オーバーフロー。
4. 概要
上記の 3 つの方法はすべて実行可能です
最初の方法はシステム速度に最も影響を与えるため、お勧めできません。
2 番目の方法は効果的ですが安全です
3 番目の方法。個人的には 3 番目の方法が最良だと考えており、皆さんにお勧めします。
5. Web クラスターでセッションを同期するには memcache を使用します
セッションを同期するには memcache を使用するのが最善だと思います
1. Web クラスターをシミュレートします
2 つの memcached プロセスを開始しました。 、2 つのサーバーをそれぞれシミュレートします
/usr/local/bin/memcached-d-m1024-c3000-uuenucom-p12000-P./memcached.pid
/usr/local/bin/memcached-d-m1024 -c3000 -uuenucom-p13000-P./mem.pid
2. PHP 構成を変更します
vi/usr/local/php/lib/php.ini
session.save_handler=“memcache”
memcache .hash_strategy=“consistent”
session.save_path=“tcp://127.0.0.1:13000?weight=10,tcp://127.0.0.1:12000″
説明: 最初の行、セッション ストレージメソッドは memcache です。2 行目は memcache のハッシュ アルゴリズムです。3 行目はセッションが保存されている場所です。
View phpinfo
SessionSupportenabled >Registeredsavehandlersfilesusersqlitememcache
Registeredserializerhandlersphpphp_binary
次は
session.save_pathtcp://127.0.0.1:13000,tcp://127.0.0.1:12000
4. 簡単なテストを実行します
a)準備ファイル session.php
PHP コード
session_start();
$_SESSION['username']=“abcabc”;echosession_id()> 🎜 >b) セッションコンテンツファイルを表示
PHP コード
$mem=newMemcache
$mem->addServer("127.0.0.1",12000)ordie("Couldnotaddserver12000");
$mem->addServer("127.0.0.1",13000)ordie("Couldnotaddserver13000"); $val=$mem->get('qp0mrob2ovcqle3u4lbr4obsa5');
//echosession_id();
echo$val
?> 結果は username|s:6 です。 : "abcabc";

?

転載:
?http://blog.itpub.net/27042095/viewspace-1218269/

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows 11で明るさを調整する10の方法 Windows 11で明るさを調整する10の方法 Dec 18, 2023 pm 02:21 PM

画面の明るさは、最新のコンピューティング デバイスを使用する上で不可欠な部分であり、特に長時間画面を見る場合には重要です。目の疲れを軽減し、可読性を向上させ、コンテンツを簡単かつ効率的に表示するのに役立ちます。ただし、設定によっては、特に新しい UI が変更された Windows 11 では、明るさの管理が難しい場合があります。明るさの調整に問題がある場合は、Windows 11 で明るさを管理するすべての方法を次に示します。 Windows 11で明るさを変更する方法【10の方法を解説】 シングルモニターユーザーは、次の方法でWindows 11の明るさを調整できます。これには、ラップトップだけでなく、単一のモニターを使用するデスクトップ システムも含まれます。はじめましょう。方法 1: アクション センターを使用する アクション センターにアクセスできる

iPhoneのSafariでプライベートブラウジング認証をオフにする方法は? iPhoneのSafariでプライベートブラウジング認証をオフにする方法は? Nov 29, 2023 pm 11:21 PM

iOS 17 では、Apple はモバイル オペレーティング システムにいくつかの新しいプライバシーおよびセキュリティ機能を導入しました。その 1 つは、Safari のプライベート ブラウジング タブに対して 2 段階認証を要求する機能です。その仕組みとオフにする方法は次のとおりです。 iOS 17 または iPadOS 17 を実行している iPhone または iPad では、Safari でプライベート ブラウズ タブを開いていて、再度アクセスするためにセッションまたはアプリを終了する場合、Apple のブラウザでは Face ID/Touch ID 認証またはパスコードが必要になります。言い換えれば、ロックが解除されている iPhone または iPad を誰かが手に入れても、パスコードを知らなければプライバシーを閲覧することはできません。

Cookie はどこに保存されますか? Cookie はどこに保存されますか? Dec 20, 2023 pm 03:07 PM

Cookie は通常、ブラウザの Cookie フォルダに保存されます。ブラウザの Cookie ファイルは通常、バイナリ形式または SQLite 形式で保存されます。Cookie ファイルを直接開くと、文字化けしたり判読できないコンテンツが表示される可能性があるため、使用することをお勧めします。 Cookie を表示および管理するためにブラウザによって提供される Cookie 管理インターフェイス。

コンピューター上の Cookie はどこにありますか? コンピューター上の Cookie はどこにありますか? Dec 22, 2023 pm 03:46 PM

コンピュータ上の Cookie は、使用するブラウザとオペレーティング システムに応じて、ブラウザ上の特定の場所に保存されます。 1. Google Chrome、C:\Users\YourUsername\AppData\Local\Google\Chrome\User Data\Default \Cookies に保存されます。等

モバイル Cookie はどこにありますか? モバイル Cookie はどこにありますか? Dec 22, 2023 pm 03:40 PM

携帯電話上の Cookie は、モバイル デバイスのブラウザ アプリケーションに保存されます: 1. iOS デバイスでは、Cookie は Safari ブラウザの [設定] -> Safari -> [詳細] -> [Web サイト データ] に保存されます; 2. Android デバイスでは、Cookie は保存されますChromeブラウザの設定→サイト設定→Cookieなど

ブラウザの Cookie が保存される場所の詳細な説明 ブラウザの Cookie が保存される場所の詳細な説明 Jan 19, 2024 am 09:15 AM

インターネットの普及により、ブラウザを使用してインターネットを閲覧することが生活様式になりました。ブラウザを日常的に使用する中で、オンラインショッピング、ソーシャルネットワーキング、電子メールなど、アカウントのパスワードを入力する必要がある場面に遭遇することがよくあります。この情報は、次回アクセスするときに再度入力する必要がないようにブラウザによって記録される必要がありますが、このような場合に Cookie が役に立ちます。クッキーとは何ですか? Cookie とは、サーバーからユーザーのブラウザに送信され、ローカルに保存される小さなデータ ファイルを指し、一部の Web サイトでのユーザーの行動が含まれています。

document.cookieが取得できない問題の解決方法 document.cookieが取得できない問題の解決方法 Nov 23, 2023 am 10:02 AM

document.cookie が取得できない場合の解決策: 1. ブラウザのプライバシー設定、2. 同一オリジン ポリシー、3. HTTPOnly Cookie、4. JavaScript コード エラー、5. Cookie が存在しないか期限切れ、6. クロスドメインの問題、7 . ビューアモード; 8. サーバーの問題; 9. JavaScript 実行タイミング; 10. コンソールログなどを確認します。

コックピット Web UI から管理アクセスを有効にする方法 コックピット Web UI から管理アクセスを有効にする方法 Mar 20, 2024 pm 06:56 PM

Cockpit は、Linux サーバー用の Web ベースのグラフィカル インターフェイスです。これは主に、初心者/熟練ユーザーにとって Linux サーバーの管理を容易にすることを目的としています。この記事では、Cockpit アクセス モードと、CockpitWebUI から Cockpit への管理アクセスを切り替える方法について説明します。コンテンツ トピック: コックピット エントリ モード 現在のコックピット アクセス モードの確認 CockpitWebUI からコックピットへの管理アクセスを有効にする CockpitWebUI からコックピットへの管理アクセスを無効にする まとめ コックピット エントリ モード コックピットには 2 つのアクセス モードがあります。 制限付きアクセス: これは、コックピット アクセス モードのデフォルトです。このアクセス モードでは、コックピットから Web ユーザーにアクセスできません。

See all articles