ホームページ  >  記事  >  バックエンド開発  >  PHP は Redis を使用してセッション インスタンスの共有を実現します

PHP は Redis を使用してセッション インスタンスの共有を実現します

*文
*文オリジナル
2017-12-25 14:27:461494ブラウズ

Redis はその効率的なパフォーマンスにより広く使用されています。従来のセッションはデータをファイルに保存します。ディスクの IO パフォーマンスが低いため、セッションのパフォーマンスがボトルネックになります。この記事では主に、プログラムの効率を向上させるためにセッションを Redis に保存する方法を紹介します。

方法 1:

構成ファイル php.ini を見つけて、次の内容に変更し、保存してサービスを再起動します

session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"

方法 2:

次の内容をコードに直接追加します:

ini_set("session.save_handler", "redis");
ini_set("session.save_path", "tcp://127.0.0.1:6379");

注:設定ファイル redis.conf の save_path に接続パスワード requirepass を設定します。このように tcp://127.0.0.1:6379?auth=authpwd を記述する必要があります。そうしないと、セッションを保存するときにエラーが報告されます。


テスト:

<?php
//ini_set("session.save_handler", "redis");
//ini_set("session.save_path", "tcp://127.0.0.1:6379");
session_start();
//存入session
$_SESSION[&#39;class&#39;] = array(&#39;name&#39; => &#39;toefl&#39;, &#39;num&#39; => 8);
//连接redis
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
//检查session_id
echo &#39;session_id:&#39; . session_id() . &#39;<br/>&#39;;
//redis存入的session(redis用session_id作为key,以string的形式存储)
echo &#39;redis_session:&#39; . $redis->get(&#39;PHPREDIS_SESSION:&#39; . session_id()) . &#39;<br/>&#39;;
//php获取session值
echo &#39;php_session:&#39; . json_encode($_SESSION[&#39;class&#39;]);

関連する推奨事項:

PHPのSESSIONメカニズム分析

Cookie/セッションメカニズムの紹介

Redis クラスター構築グラフィックチュートリアル

以上がPHP は Redis を使用してセッション インスタンスの共有を実現しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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