Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Algoritma pencocokan pengguna

Akan lebih baik untuk mengetahui jenis data apa yang sedang kita bicarakan. Ada berapa pengguna? Berapa banyak yang akan online rata-rata? Bagaimana rasio "pengguna yang terlihat" dibandingkan dengan semua pengguna (jarang vs. padat)?

Modifikasi algoritme Anda Jangan pop yang pertama tetapi pilih elemen acak dari kumpulan pengguna online. Ini akan meningkatkan keseimbangan dan dapat membantu dengan kompleksitas yang diamortisasi tergantung pada rasio dua set ini!

Algoritma Alternatif (lebih terstruktur; kasus terburuk masih buruk; seharusnya bagus jika dilihat jarang terjadi) )

  • Terus lihat sebagai penyisipan pohon seimbang (O(log n))
  • Tetap online sebagai pohon yang seimbang.
  • Meskipun tidak cukup pengguna yang dipilih:
    • Telusuri celah pertama dalam terlihat (mis. [0,1,3,7] -> 2; O(log n) menurut SO-link)
    • Telusuri pengguna pertama>=gap-value (O(log n))
    • Jika pengguna
    • -> pilih
    • Lainnya
    • -> tambahkan nilai celah yang dipilih sementara (untuk saat ini; model-keputusan seberapa sering memperbarui online ) untuk melihat ATAU batasi pencarian entah bagaimana ke> nilai celah yang dipilih (O(log n))

Bergantung pada datanya, ini akan bekerja sangat baik jika datanya besar dan terlihat jarang!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Set redis vs hash

  2. .NET Core menyuntikkan layanan singleton di layanan singleton lain

  3. Penundaan besar saat menggunakan Seledri + Redis

  4. Redis - Tabel Lua sebagai nilai balik - mengapa ini tidak berfungsi?

  5. Redis:Untuk mengatur batas waktu untuk pasangan nilai kunci di Set