sql >> Database >  >> NoSQL >> Redis

Hoe naamruimtesleutels op redis te gebruiken om naambotsingen te voorkomen?

Oplossing 1:sla gegevens van verschillende modules op in verschillende Redis-instanties

De meest strikte isolatie is het opslaan van gegevens van elke module in een individuele Redis-instantie, d.w.z. een individueel Redis-proces.

Oplossing 2:sla gegevens van verschillende modules op in verschillende databases van een enkele Redis-instantie

Een Redis-instantie kan meerdere databases hebben en u kunt het aantal databases in het configuratiebestand configureren. Standaard zijn er 16 databases.

Deze databases hebben een naam met een op nul gebaseerde numerieke index. Met het select-commando kunt u de de databank. Na de selectie werken alle volgende commando's op de de database.

Als u dus een onafhankelijke database toewijst aan elke module, kunt u naamconflicten vermijden.

OPMERKING :deze oplossing werkt NIET met Redis Cluster . Redis Cluster staat u alleen toe om de 0e . te gebruiken database.

Oplossing 3:maak een naamruimte met sleutelvoorvoegsel

Als al uw gegevens in één database moeten worden opgeslagen, kunt u nog steeds impliciet een naamruimte maken met sleutelvoorvoegsel . Voor elke module moeten alle gegevens van deze module hetzelfde sleutelpatroon hebben:ModuleName:KeyName , d.w.z. elke sleutel van deze module heeft hetzelfde voorvoegsel:ModuleName .

Aangezien elke module een andere naam heeft, zullen er geen naambotsingen zijn tussen deze modules:

// Set keys for module1
SET module1:key1 value
SET module1:key2 value

// Set keys for module2
SET module2:key1 value
SET module2:key2 value

OPMERKING :deze oplossing werkt ook met Redis Cluster .




  1. Mongoose find() RegExp voor veld Nummertype

  2. Documenten met tags in lijst ophalen, gerangschikt op totaal aantal overeenkomsten

  3. Hoe krijg je dezelfde rang voor dezelfde scores in de ZRANK van Redis?

  4. Een configuratiebestand maken voor MongoDB