Redis分散キャッシュは、複数のサーバSESSIONをリアルタイムで共有する方法です.

1438 ワード

現在,マルチサーバの共有セッションといえば,ほとんどがredisで回答している.redisが複数のサーバ共有セッションを実現することについては,あまり理解できない.1つのサイトがそれぞれA B C 3台のサーバに配備されている場合、彼らのコードは同じです. 、redisを使用してセッションを共有します.では、この3台のサーバはどのようにセッションのリアルタイム共有を実現しますか?
 
まずセッションとクッキーの違いを明確にしなければならない.ブラウザ側に保存されているのは、ブラウザがサービス側に要求するたびにhttpメッセージヘッダに自動的にクッキー情報が追加されます.サービス側はユーザのクッキーをkeyとして記憶して対応するvalue(session)を探す.
同じドメイン名の下のサイトのクッキーは同じです.したがって、複数のサーバにかかわらず、どのサーバに割り当てられた同じユーザのクッキーを無路要求するかは変わらない.つまりクッキー対応のセッションも唯一です.
複数のビジネスサーバが同じredisサーバ(またはクラスタ)にアクセスすることを保証すればよい.
 
REDISを4台目のサーバDに別途配備し、A B Cの3台のサーバ上のPHP構成接続のREDISはこのDサーバである.統合されたSESSIONのリアルタイム共有を実現し、
 
PHP設定セッション共有(php.ini構成redis)
PHPを使用している場合はおめでとうございます.構成はとても簡単です.PHPは2行の構成でSessionをMemcachedまたはRedisに保存できます.もちろん、事前に構成しておく必要があります.phpを変更します.ini:
    session.save_handler = memcache
    session.save_path = "tcp://192.168.56.11:11211"

  
Redisストレージセッションの使用
session.save_handler = redis     #       file,    redis
session.save_path = "tcp://192.168.2.11:6379?auth=passwd" #    redis       
;session.save_path = "tcp://192.168.2.11:6379"  #   redis    ,       
;session.save_path = "tcp://127.0.0.1:6379"  #   redis    ,       

  
上のredisのセッション_save_pathのパスは、具体的なipアドレスとして書くことができる.これでセッション共有が実現します.
転載先:https://www.cnblogs.com/hcfinal/p/11043361.html