Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Użyj Redis, aby wygenerować unikalny identyfikator z ograniczonego zakresu

Co powiesz na używanie bitmap do nagrywania, dla każdego możliwego nbr? , czy ta wartość jest używana, czy nie?

Aby zarejestrować, że wartość jest pobierana, użyj SETBIT :

SETBIT key [nbr] 1

Aby znaleźć bezpłatny nbr użyj BITPOS :

BITPOS key 0

Aby uniknąć warunków wyścigowych, musisz upewnić się, że twoje get and set jest atomowe. [OP odnosi się do tego w pytaniu uzupełniającym.]

Będzie to wymagało bardzo mało pamięci (8K bajtów dla 65536 możliwych wartości). BITPOS to O(n), ale raczej nie stanowi to prawdziwego problemu.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kolba:przekazywanie pracy pracownika w tle (rq, redis)

  2. Poznaj bazę danych Redis:iteracja po klawiszach

  3. WRONGTYPE Operacja na kluczu z niewłaściwym rodzajem wartości php

  4. Uchwyt błędu Spring Redis

  5. Asynchroniczne interfejsy API Redis