メソッド ファイル
セッション実装ファイル: memcachedsession.php
実装原則 (PHP 内部セッションの実装原則でもあります):
1. まず、クライアントがセッション ID を持っているかどうかを確認します。持っていない場合は、通常、セッション ID をクライアントに追加します。 32 ビット ハッシュ コード、配列をセッション コンテナーとして初期化します
b. クライアントがセッション ID を持っている場合は、このセッション ID を使用して memcached 内のデータを確認します。
2. ユーザーは、ページの実行中にセッション コンテナーのセッション値を自分で変更できます。
3. ページは最終的にユーザーのセッション コンテナーを値として使用し、ユーザーのセッション ID をキーとして使用し、このキーを保存します。 -value ペアを
memcached
に挿入します
コードをコピーします コードは次のとおりです:
//memcached サーバー接続アドレス
$_MEMCACHEAUTH = array(
'host' => 'localhost '
, 'port' => 11211
; 最大保存時間
$_SESSION_EXPIRE = ini_get("session.gc_maxlifetime") //memcached のセッション キーと値のペアの有効期限
$_SESSION_MEMKEY = ""; //sessionid value
/*
カスタマイズされた _session_start( ) メソッド。PHP のネイティブ session_start() メソッドを置き換えます。
ロジックは比較的明確です
*/
function _session_start()
{
global $_SESSION_NAME, $_SESSION_TIME, $_SESSION_MEMKEY;グローバル $_SESSION;
グローバル $_MEMCACHEAUTH, $ _sessionmem = memcache_connect($_MEMCACHEAUTH['host'], $_MEMCACHEAUTH['port']);
if ($_COOKIE[$_SESSION_NAME])
{
$_SESSION_MEMKEY = md5( uniqid() ) ;
setcookie($_SESSION_NAME, $_SESSION_MEMKEY, $_SESSION_TIME, "/");
$_SESSION = array()
}
$_SESSION_MEMKEY = $_COOKIE [$ _SESSION_NAME];
$_SESSION = memcache_get($ _sessionmem, $_SESSION_MEMKEY );
if ( $_SESSION === FALSE )
{
$_SESSION = array()
}
//この関数を登録します。ページが終了すると実行されます
register_shutdown_function( "_session_save_handler");
}
/*
セッション値を保存して memcached 接続を閉じるために使用される最後のメソッド
*/
function _session_save_handler()
{
グローバル $_sessionmem;
グローバル $_SESSION、$_SESSION_NAME、$_SESSION_EXPIRE、$_SESSION_MEMKEY;私);
}
?> ;
テストファイル:
セッション値を設定します
コードをコピーします
コードは次のとおりです:
/*
セッション値を設定するファイル: session_set.php
*/
include_once "memcachedsession.php";
$_SESSION['a' ] = time();
コードをコピーします
/*
セッション値ファイルを取得します: session_get.php
*/
include_once "memcachedsession.php"
function getession()
{
echo $_SESSION['a '];
}
getsession();
Memcached のバッファリング アプリケーションは依然として非常に優れています
http://www.bkjia.com/PHPjc/322279.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/322279.html
技術記事
メソッド ファイル セッション実装ファイル: memcachedsession.php 実装原則 (PHP 内部セッションの実装原則でもあります): 1. まず、クライアントにセッション ID があるかどうかを確認します。 a. ない場合は、セッションを追加します...