Déterminez s'il est possible de stocker entièrement les données utilisateur dans Redis au lieu d'utiliser une base de données de type SQL.
Le premier problème est de savoir comment récupérer le moment où l'utilisateur saisit le nom d'utilisateur et le mot de passe.
Utiliser la commande touches est absolument impossible, c'est terrible.
La structure envisagée est la suivante :
每一个用户数据存储为一个hash类型:
key user:info:unique-identification(int or uuid)
hash-key-email: hash-value-email
hash-key-cellphone: hash-value-cellphone
hash-key-password: hash-value-password
hash-key-nickname: hash-value-nickname
hask-key-right01: hash-value-right01
……
用hash类型存储email=>unique-identification检索数据
key email:index
hash-key-valueOfEmial: hash-value-unique-identification
用hash类型存储cellphone=>unique-identification检索数据
key cellphone:index
hash-key-valueOfCellphone: hash-value-unique-identification
Déterminez si l'utilisateur saisit son e-mail ou son téléphone portable
Utilisez la commande hget pour obtenir l'identification unique correspondante à partir des données correspondantes
Si hget obtient des données, utilisez user:unique-identification comme clé pour obtenir les données utilisateur
Comparez le mot de passe, si la vérification est cohérente, créez la session et les cookies correspondants, et la connexion est terminée.
Considérez les problèmes que vous rencontrerez :
Le temps de réponse de hget est acceptable. C'est beaucoup plus rapide que la commande key pour la récupération. Nous n'avons pas encore examiné si LUA peut être utilisé pour effectuer la vérification de connexion avec un seul accès.
Cependant, le stockage des données est devenu un autre problème difficile à résoudre. S'il y a 3 millions d'utilisateurs, une seule récupération de données d'e-mail =>d'identification unique sera d'environ 300 millions. S'il y a 10 millions d'utilisateurs, les deux récupérations seront d'environ 300 millions. environ 2G de données.
Veuillez me dire s'il existe une structure plus raisonnable pour résoudre ce problème. Dans l'attente des conseils d'experts.
Personnellement, je pense qu'il est définitivement déraisonnable d'utiliser Redis pour le stockage, mais c'est faisable.