sql >> Database teknologi >  >> NoSQL >> Redis

Brug Redis til at generere unikt ID fra et begrænset område

Hvad med at bruge bitmaps til at optage, for enhver mulig nbr , om den værdi bruges eller ej?

For at registrere, at en værdi er taget, brug SETBIT :

SETBIT key [nbr] 1

For at finde en gratis nbr brug BITPOS :

BITPOS key 0

For at undgå løbsforhold skal du sørge for, at dit get-and-set er atomart. [OP behandler dette i et opfølgende spørgsmål.]

Dette vil kræve meget lidt hukommelse (8K bytes for 65536 mulige værdier). BITPOS er O(n), men det er næppe et reelt problem.




  1. Kom godt i gang med Python og MongoDB

  2. En guide til MongoDB med Java

  3. Forskellen mellem MongoDB og Mongoose

  4. Hvorfor anbefales det ikke at lukke en MongoDB-forbindelse nogen steder i Node.js-koden?