こんな感じでセッションを使ったログインを書きました。ログインするときに、セッション ID を Redis に保存します。
次に、2 人のユーザーが同じアカウントにログインし、後でログインしたユーザーが先にログインしたユーザーを絞り出す機能を実装したいと思います。
私のアイデアの 1 つは、ログイン時に Redis に保存されているセッション ID を更新することです。ログインしたユーザーが操作を実行するたびに、ログイン時に保存されたセッション ID が現在のセッション ID と一致するかどうかを確認するために Redis にアクセスします。矛盾している場合は、ログインしていないことを意味します。しかし、これは redis を頻繁に読み込むことになるでしょうか?プレッシャーはあるでしょうか?
もう 1 つのアイデアは、ログイン時に最後に保存されたセッション ID を Redis から確実に取得できるということです。この方法では、以前にログインしたユーザーはセッション ファイルを取得できなくなります。まだログインしていません。この方法では、ログイン時にのみデータベースが読み取られ、データベースの読み取り回数は比較的少なくなります。ただし、セッション ID を使用してファイルを破棄する方法がわかりません~~
専門家の皆様、これら 2 つの方法のどちらが優れていますか? 2 番目の方法では、sessionid を使用してファイルを破棄するにはどうすればよいでしょうか?それとももっと良い方法があるのでしょうか?アドバイスありがとうございます
2番目の方法がわかりません。 B がログインすると、session_id を取得し、A のセッション ファイルを破棄するという意味ですか?これを行う方法
2 番目の方法がわかりません。 B がログインすると、session_id を取得し、A のセッション ファイルを破棄するという意味ですか?どうすればこれができるのですか
まあ、それが私が言いたいことなので、それを行う方法を知りたいです。 それはできません。セッションはユーザーのブラウザに保存されます。同じコンピュータからログインしていない場合、どうすれば削除できますか? それとも、2 つのアカウント A と B は、同じコンピュータからのみログインしているということでしょうか?同じコンピュータ...
それはできません ああ、セッションはユーザーのブラウザに保存されています。同じコンピュータからログインしていない場合、どうすれば削除できますか? それとも、2 つのアカウント A という意味ですか?そして B は同じコンピューターからのみログインします...
つまり、サーバーに保存されているファイルをセッション ID を介して削除するだけです。この場合、ユーザー A はセッション ID を介してサーバーに保存されている情報を取得できません。 。
ユーザー名をキーとして使用する場合、ログインしていなくても、その値 (sessionid) が自分のものではない場合、redis にはユーザー名が 1 つだけ存在します。
sessionid をキーとして使用する場合は、クエリを実行する必要があります。対応するキー (複数のセッション ID を取得します)
これらのセッション ID を調べて、
session_id($sessionid); を実行します
session_id($your sessionid); );
ログインするときに、セッション ID を redis に保存します
キーとしてユーザー名を使用しますか、それともキーとしてセッション ID を使用しますか?
ユーザー名をキーとして使用する場合、ログインしていなくても、その値 (sessionid) が自分のものではない場合、redis にはユーザー名が 1 つだけ存在します。
これらの session_id($sessionid); を実行します
session_id($your sessionid); を実行します自分のものではないセッション ID ();
Web サイトを使用するにはログインする必要があるため、最初の質問は、ログインしているかどうかを確認するたびに Redis にアクセスしてクエリすることです。 . ストレスがかかりすぎるでしょうか?ユーザーベースはそれほど大きくはなく、おそらく多くても数万人程度でしょう。
redis はメモリに基づいており、セッションはファイルに基づいています
ハードディスクの損傷を恐れていませんか?
redis はメモリに基づいており、セッションはファイルに基づいています
ハードディスクの損傷を恐れていませんか?
心配するのは杞憂です、わかりますか?
わかりました。 3Qモデレーター〜