PHPセッションをRedisに書き込む方法

小云云
リリース: 2023-03-19 16:14:01
オリジナル
2140 人が閲覧しました

セッション: コンピューター、特にネットワーク アプリケーションでは、「セッション制御」と呼ばれます。この記事では、セッションを Redis に保存する方法を説明します。必要な場合は、急いで学習してください。

PHP のセッションは、デフォルトでは php.ini 設定ファイルに設定されたセッション キャッシュ ディレクトリにファイルとして保存されます。セッションのファイル保存の効率は非常に低く、各ユーザーがログインするたびに、固有の session_id ファイルが生成されます。ユーザーのログイン数が数十万に達すると、サーバー上に数十万のファイルが生成され、ディスク上のセッション ディレクトリの IO の読み取りと書き込みが非常に遅くなり、ユーザーのログイン時に、セッション ファイルの読み取りと書き込みに多くの時間を費やすプログラム。多数のユーザーがログインすると、読み取りおよび書き込み機能が不足し、その結果、セッションを操作する最初のプロセスによってファイルがロックされ、他のリクエストがブロックされます。セッション ファイルのロックが解除されるまで、リクエストは session_start() で一時停止されます。現時点では、ログインが遅い問題を最適化する必要があります。

ロックされたセッションファイルは、スクリプトの実行が終了するか、セッションが正常に閉じられるまでロックが解除されないため、大量のPHPリクエスト($_SESSIONデータの使用を必要とする)がロックされるのを防ぐために、次のようにすることができます。書き込み後すぐにセッションを閉じて、ロックを解放します。

//开启会话
session_start();
//写入会话
$_SESSION['is_login']=1;
//写入会话后关闭上一个会话文件的写入
session_write_close();
ログイン後にコピー

phpセッションセッションはredisに書き込まれます

redisデータはコンピュータのメモリスティックに保存され、実行されます。コンピュータのメモリスティックの速度はハードディスクの数十倍であるため、phpセッションがredisに書き込まれる場合。 redisキャッシュ、速度が大幅に向上します。設定方法:

//方式一,在php脚本中设置更改php会话写入方式
<?php
ini_set("session.save_handler","redis"); 
ini_set("session.save_path","tcp://127.0.0.1:6379");
//如果有密码
ini_set("session.save_path","tcp://127.0.0.1:6379?auth=password");
?>
ログイン後にコピー
//修改php的配置文件php.ini
session.save_handler = redis 
session.save_path = "tcp://127.0.0.1:6379"
//如果有密码
session.save_path = "tcp://127.0.0.1:6379?auth=password"
ログイン後にコピー

関連する推奨事項:

phpでセッションを登録して読み取る方法

以上がPHPセッションをRedisに書き込む方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート