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

Gunakan Redis untuk menghasilkan ID unik dari jangkauan terbatas

Bagaimana jika menggunakan Bitmap untuk merekam, untuk setiap nbr possible yang memungkinkan , apakah nilai tersebut digunakan atau tidak?

Untuk mencatat bahwa suatu nilai diambil gunakan SETBIT :

SETBIT key [nbr] 1

Untuk menemukan nbr free gratis gunakan BITPOS :

BITPOS key 0

Untuk menghindari kondisi balapan, Anda harus memastikan get-and-set Anda atomik. [OP membahas ini dalam pertanyaan lanjutan.]

Ini akan membutuhkan memori yang sangat sedikit (8K byte untuk 65536 kemungkinan nilai). BITPOS adalah O(n), tapi itu tidak mungkin menjadi masalah nyata.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apakah mungkin untuk memperbarui beberapa kunci hset (bukan bidang) menggunakan mset?

  2. StackExchange.Redis cara berlangganan beberapa saluran

  3. Sesuatu seperti cache tag dan menanyakannya untuk menyarankan mereka menggunakan Redis

  4. Apa keuntungan menggunakan backend kustom sesi Gorilla?

  5. Bagaimana socket.io mengirim pesan ke beberapa server?