セッションを使用したログインに関連するいくつかの問題
セッションを使用したログインに関するいくつかの問題
このようにして、セッションを使用したログインを書きました。ログインするときに、セッション ID を Redis に保存します。
今度は、2 人のユーザーが同じアカウントにログインし、後でログインしたユーザーが先にログインしたユーザーを絞り出す機能を実装したいと思います。
私のアイデアの 1 つは、ログイン時に Redis に保存されているセッション ID を更新することです。ログインしたユーザーが操作を実行するたびに、ログイン時に保存されたセッション ID が一貫しているかどうかを確認するために Redis にアクセスします。現在のものとの不一致は、ログインが異なることを意味します。しかし、これは redis を頻繁に読み込むことになるでしょうか?プレッシャーはあるでしょうか?
もう 1 つのアイデアは、ログイン時に最後に保存されたセッション ID を確実に取得できることです。この方法では、以前にログインしたユーザーはセッションを取得できなくなります。ログインしていなくても、ファイルを保存できます。この方法では、ログイン時にのみデータベースが読み取られ、データベースの読み取り回数は比較的少なくなります。ただし、セッション ID を使用してファイルを破棄する方法がわかりません~~
専門家の皆様、これら 2 つの方法のどちらが優れていますか? 2 番目の方法では、sessionid を使用してファイルを破棄するにはどうすればよいでしょうか?それとももっと良い方法があるのでしょうか?アドバイスありがとうございます
-----解決策---------
次に、この方法がわかりません。 B はログイン時に session_id を取得し、A のセッション ファイルを破棄するということですか?やり方
-----解決策---------
ログイン時に、 sessionid を redis に保存します
ユーザー名をキーとして使用しますか、それともセッション ID をキーとして使用しますか?
ユーザー名をキーとして使用する場合、ログインしていなくても、その値 (セッション ID) が自分のものではない場合、
セッション ID をキーとして使用する場合、redis にはユーザー名が 1 つだけ存在します。ユーザー名に基づいて対応するキーをクエリする必要があります (複数のセッション ID を取得します)
これらのセッション ID を調べて、
session_id($sessionid);
session_start();
unset_session() を実行します。 ; 自分のものではないセッション ID の場合は、
最後に
session_id($yoursessionid);
session_start();
-----解決策----- ----- ----------
Redis はメモリに基づいており、セッションはファイルに基づいています
ハードディスクの損傷は怖くないですか?
------解決策---------
この件で何かわからないことはありますか?
心配するのは杞憂です、わかりますか?

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Redisクラスターモードは、シャードを介してRedisインスタンスを複数のサーバーに展開し、スケーラビリティと可用性を向上させます。構造の手順は次のとおりです。異なるポートで奇妙なRedisインスタンスを作成します。 3つのセンチネルインスタンスを作成し、Redisインスタンスを監視し、フェールオーバーを監視します。 Sentinel構成ファイルを構成し、Redisインスタンス情報とフェールオーバー設定の監視を追加します。 Redisインスタンス構成ファイルを構成し、クラスターモードを有効にし、クラスター情報ファイルパスを指定します。各Redisインスタンスの情報を含むnodes.confファイルを作成します。クラスターを起動し、CREATEコマンドを実行してクラスターを作成し、レプリカの数を指定します。クラスターにログインしてクラスター情報コマンドを実行して、クラスターステータスを確認します。作る

Redisデータをクリアする方法:Flushallコマンドを使用して、すべての重要な値をクリアします。 FlushDBコマンドを使用して、現在選択されているデータベースのキー値をクリアします。 [選択]を使用してデータベースを切り替え、FlushDBを使用して複数のデータベースをクリアします。 DELコマンドを使用して、特定のキーを削除します。 Redis-CLIツールを使用してデータをクリアします。

Redisのキューを読むには、キュー名を取得し、LPOPコマンドを使用して要素を読み、空のキューを処理する必要があります。特定の手順は次のとおりです。キュー名を取得します:「キュー:キュー」などの「キュー:」のプレフィックスで名前を付けます。 LPOPコマンドを使用します。キューのヘッドから要素を排出し、LPOP Queue:My-Queueなどの値を返します。空のキューの処理:キューが空の場合、LPOPはnilを返し、要素を読む前にキューが存在するかどうかを確認できます。

Centosシステムでは、Redis構成ファイルを変更するか、Redisコマンドを使用して悪意のあるスクリプトがあまりにも多くのリソースを消費しないようにすることにより、LUAスクリプトの実行時間を制限できます。方法1:Redis構成ファイルを変更し、Redis構成ファイルを見つけます:Redis構成ファイルは通常/etc/redis/redis.confにあります。構成ファイルの編集:テキストエディター(VIやNANOなど)を使用して構成ファイルを開きます:sudovi/etc/redis/redis.conf luaスクリプト実行時間制限を設定します。

Redisデータの有効期間戦略には2つのタイプがあります。周期削除:期限切れのキーを削除する定期的なスキャン。これは、期限切れの時間帯-remove-countおよび期限切れの時間帯-remove-delayパラメーターを介して設定できます。怠zyな削除:キーが読み取られたり書かれたりした場合にのみ、削除の有効期限が切れたキーを確認してください。それらは、レイジーフリーレイジーエビクション、レイジーフリーレイジーエクスピア、レイジーフリーラジーユーザーのパラメーターを介して設定できます。

Redisコマンドラインツール(Redis-Cli)を使用して、次の手順を使用してRedisを管理および操作します。サーバーに接続し、アドレスとポートを指定します。コマンド名とパラメーターを使用して、コマンドをサーバーに送信します。ヘルプコマンドを使用して、特定のコマンドのヘルプ情報を表示します。 QUITコマンドを使用して、コマンドラインツールを終了します。

Redisカウンターは、Redisキー価値ペアストレージを使用して、カウンターキーの作成、カウントの増加、カウントの減少、カウントのリセット、およびカウントの取得など、カウント操作を実装するメカニズムです。 Redisカウンターの利点には、高速速度、高い並行性、耐久性、シンプルさと使いやすさが含まれます。ユーザーアクセスカウント、リアルタイムメトリック追跡、ゲームのスコアとランキング、注文処理などのシナリオで使用できます。

Debian Systemsでは、Directoryコンテンツを読み取るためにReadDirシステム呼び出しが使用されます。パフォーマンスが良くない場合は、次の最適化戦略を試してください。ディレクトリファイルの数を簡素化します。大きなディレクトリをできる限り複数の小さなディレクトリに分割し、Readdirコールごとに処理されたアイテムの数を減らします。ディレクトリコンテンツのキャッシュを有効にする:キャッシュメカニズムを構築し、定期的にキャッシュを更新するか、ディレクトリコンテンツが変更されたときに、頻繁な呼び出しをreaddirに削減します。メモリキャッシュ(memcachedやredisなど)またはローカルキャッシュ(ファイルやデータベースなど)を考慮することができます。効率的なデータ構造を採用する:ディレクトリトラバーサルを自分で実装する場合、より効率的なデータ構造(線形検索の代わりにハッシュテーブルなど)を選択してディレクトリ情報を保存およびアクセスする
