redis - Est-il possible d'implémenter la fonction de connexion uniquement en utilisant Reids?
習慣沉默
習慣沉默 2017-05-31 10:31:28
0
1
662

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.

習慣沉默
習慣沉默

répondre à tous(1)
给我你的怀抱

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!