PHP に関する限り、言語自体がサポートするセッションはファイルの形式でディスク ファイルに保存され、指定されたフォルダーに保存されます。保存されたパスは、設定ファイルで設定するか、関数 session_save_path() を使用して設定できます。 ) をプログラムに組み込んでいますが、これには欠点があります。 リーリー
もちろん、キャッシュに保存すれば上記の問題は解決できますが、PHP独自のセッション関数を使えば、session_set_save_handler()関数を使って簡単にセッション処理プロセスを再制御することができます。 PHP のセッション シリーズ関数を使用しない場合は、同様のセッション関数を自分で記述することもできます。これは、ユーザーの Mid とログインに基づいて sessionId としてハッシュを計算します。要求されるたびに、有効であるように sessionId を追加する必要があります (初回ログイン時には必要ありません。この時点で sessionId が作成され、クライアントに返されます)。これも非常に便利です。簡潔かつ効率的。もちろん、この記事で主に話しているのは、PHP 自身の SESSION での「操作」です。 セッションがキャッシュに保存されました PHPはキャッシュをredisに保存します。もちろん、プログラム内でini_set()関数を使用してセッションの処理や保存を変更することもできます。これはテストに非常に便利です。ここではこれを使用します。もちろん、運用環境では設定ファイルを使用することをお勧めします。リーリー
ここで、session.save_handler メソッドを redis に設定し、session.save_path を redis のアドレスとポートに設定します。設定後、更新して redis を確認すると、redis で sessionId が生成されていることがわかります。ブラウザによってリクエストされたものと同じですopen(string $savePath, string $sessionName); //open はコンストラクターに似ており、session_start() 関数の使用後など、セッションの開始時に呼び出されます。close(); //クラスのデストラクターと同様に、write 関数が呼び出された後に呼び出され、session_write_close() の後にも実行されます
read(string $sessionId) //セッションを読み取るときに呼び出されます
write(string $sessionId, string $data) //データを保存するときに呼び出されます
destory($sessionId); // セッション (session_destory() または session_regenerate_id()) を破棄するときは
と呼ばれますgc($lifeTime); //期限切れのデータをクリーンアップするガベージクリーニング関数
主なことは、さまざまなストレージドライバーに応じてさまざまな特定のメソッドを設定できることです。必要に応じて、セッションを保存するための 2 つのドライバーを実装し、拡張することができます。とても便利です。
以下は私の Redis 実装です (db は Redis に似ていますが、Redis コードは少なく、ここに掲載されています): この日はmemcachedを使いたかったので、拡張が簡単なインターフェースメソッドを使用しましたリーリー
簡単なファクトリーパターンを見てくださいリーリー
電話をかけるのもとても簡単ですリーリー
データベースバージョンの設定も非常に簡単です。必要に応じて、ここからフルバージョンとデモをダウンロードできます。
この記事の著作権は著者ifforever(luluyrt@163.com)に帰属します。記事を転載した後は、著者と原文リンクをわかりやすい位置に記載する必要があります。記事ページに記載されていない場合は、法的責任を追及する権利が留保されます。
http://www.bkjia.com/PHPjc/947510.html