Maison  >  Questions et réponses  >  le corps du texte

redis - Est-il possible d'implémenter la fonction de connexion uniquement en utilisant Reids?

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
  1. Déterminez si l'utilisateur saisit son e-mail ou son téléphone portable

  2. Utilisez la commande hget pour obtenir l'identification unique correspondante à partir des données correspondantes

  3. Si hget obtient des données, utilisez user:unique-identification comme clé pour obtenir les données utilisateur

  4. 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.

習慣沉默習慣沉默2668 Il y a quelques jours633

répondre à tous(1)je répondrai

  • 给我你的怀抱

    给我你的怀抱2017-05-31 10:33:28

    Personnellement, je pense qu'il est définitivement déraisonnable d'utiliser Redis pour le stockage, mais c'est faisable.

    répondre
    0
  • Annulerrépondre