SQL のようなデータベースを使用する代わりに、ユーザー データを完全に Redis に保存することが可能かどうかを検討してください。
最初の問題は、ユーザーがユーザー名とパスワードを入力したときの取得方法です。
keys コマンドを使用することは絶対に不可能です。ひどいことです。
想定される構造は次のとおりです:
リーリーユーザーが電子メールと携帯電話のどちらを入力したかを決定します
hget コマンドを使用して、対応するデータから対応する一意の ID を取得します
hget がデータを取得する場合、user:unique-identification をキーとして使用してユーザー データを取得します
パスワードを比較し、検証が一致していれば、対応するセッションと Cookie を作成すると、ログインが完了します。
発生する問題を考慮してください:
hget の応答時間は許容範囲内です。これは、取得のためのkeys コマンドよりもはるかに高速です。LUA を使用して 1 回のアクセスでログイン検証を完了できるかどうかはまだ検討していません。
しかし、データの保存も解決が難しい問題となっており、ユーザー数が300万人であれば、メール1件=>固有識別検索データだけでも約3億件、ユーザー数が1,000万人であれば2回の検索でデータ量が膨大になってしまいます。約 2G のデータです。
この問題を解決するためのより合理的な構造があるかどうかを尋ねたいと思います。専門家のアドバイスをお待ちしております。
個人的には、ストレージに Redis を使用するのは明らかに不合理だと思いますが、実現可能です。