cari

Rumah  >  Soal Jawab  >  teks badan

redis - Adakah mungkin untuk melaksanakan fungsi log masuk semata-mata menggunakan reids?

Pertimbangkan sama ada boleh untuk menyimpan data pengguna sepenuhnya dalam redis dan bukannya menggunakan pangkalan data seperti SQL.

Masalah pertama ialah cara mendapatkan semula apabila pengguna memasukkan nama pengguna dan kata laluan.
Menggunakan arahan kekunci adalah mustahil, ia amat mengerikan.

Struktur yang dibayangkan adalah seperti berikut:

每一个用户数据存储为一个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. Tentukan sama ada pengguna memasukkan e-mel atau telefon bimbit

  2. Gunakan arahan hget untuk mendapatkan pengenalan unik yang sepadan daripada data yang sepadan

  3. Jika hget memperoleh data, gunakan user:unique-identification sebagai kunci untuk mendapatkan data pengguna

  4. Bandingkan kata laluan, jika pengesahan adalah konsisten, buat sesi dan kuki yang sepadan, dan log masuk selesai.

Pertimbangkan masalah yang anda akan hadapi:
Masa respons hget boleh diterima Ini adalah lebih cepat daripada perintah kunci untuk mendapatkan semula Kami belum mempertimbangkan sama ada LUA boleh digunakan untuk melengkapkan pengesahan log masuk dengan satu akses.
Namun, storan data telah menjadi satu lagi masalah yang sukar diselesaikan Jika terdapat 3 juta pengguna, hanya satu e-mel=> data perolehan pengenalan unik akan menjadi kira-kira 300M Jika terdapat 10 juta pengguna, kedua-dua dapatan itu akan menjadi kira-kira 2G data.

Sila beritahu saya jika terdapat struktur yang lebih munasabah untuk menyelesaikan masalah ini. Mengharapkan nasihat pakar.

習慣沉默習慣沉默2765 hari yang lalu709

membalas semua(1)saya akan balas

  • 给我你的怀抱

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

    Secara peribadi, saya fikir adalah tidak munasabah untuk menggunakan redis untuk penyimpanan, tetapi ia boleh dilaksanakan.

    balas
    0
  • Batalbalas