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

Hvordan navnerumstaster på redis for at undgå navnekollisioner?

Løsning 1:Gem data fra forskellige moduler i forskellige Redis-instanser

Den mest strenge isolation er lagring af data fra hvert modul i en individuel Redis-instans, dvs. en individuel Redis-proces.

Løsning 2:Gem data fra forskellige moduler i forskellige databaser af en enkelt Redis-instans

En Redis-instans kan have flere databaser, og du kan konfigurere antallet af databaser i konfigurationsfilen. Som standard er der 16 databaser.

Disse databaser er navngivet med et nul-baseret numerisk indeks. Med select-kommandoen kan du bruge ith database. Efter valget vil alle efterfølgende kommandoer fungere på ith database.

Så hvis du tildeler en uafhængig database til hvert modul, kan du undgå navnekollisioner.

BEMÆRK :denne løsning virker IKKE med Redis Cluster . Redis Cluster giver dig kun mulighed for at bruge den 0. database.

Løsning 3:Opret navnerum med nøglepræfiks

Hvis alle dine data skal gemmes i en enkelt database, kan du stadig implicit oprette et navneområde med nøglepræfiks . For hvert modul skal alle data i dette modul have det samme nøglemønster:ModuleName:KeyName , dvs. hver nøgle i dette modul har det samme præfiks:ModuleName .

Da hvert modul har et andet navn, vil der ikke være nogen navnekollisioner mellem disse moduler:

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

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

BEMÆRK :denne løsning fungerer også med Redis Cluster .




  1. StackExchange.Redis:Batchadgang til flere hashes

  2. spring-boot redis :Hvordan ugyldiggøres alle sessioner for en bruger?

  3. MongoDB tilføjer til samlingsfelt fra basis 1

  4. Test tom streng i mongodb og pymongo