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

Come inserire i tasti dello spazio dei nomi su redis per evitare collisioni di nomi?

Soluzione 1:archivia i dati di diversi moduli in diverse istanze Redis

L'isolamento più strettamente è la memorizzazione dei dati di ciascun modulo in una singola istanza Redis, ovvero un singolo processo Redis.

Soluzione 2:archivia i dati di moduli diversi in database diversi di una singola istanza Redis

Un'istanza Redis può avere più database ed è possibile configurare il numero di database nel file di configurazione. Per impostazione predefinita, ci sono 16 database.

Questi database sono denominati con un indice numerico in base zero. Con il comando select, puoi usare ith Banca dati. Dopo la selezione, eventuali comandi successivi opereranno sull'ith banca dati.

Quindi, se assegni un database indipendente per ogni modulo, puoi evitare collisioni di nomi.

NOTA :questa soluzione NON funziona con Redis Cluster . Redis Cluster ti consente solo di utilizzare 0th banca dati.

Soluzione 3:crea uno spazio dei nomi con il prefisso chiave

Se tutti i tuoi dati devono essere archiviati in un unico database, puoi comunque creare implicitamente uno spazio dei nomi con prefisso chiave . Per ogni modulo, tutti i dati di questo modulo devono avere lo stesso schema di chiavi:ModuleName:KeyName , ovvero ogni chiave di questo modulo ha lo stesso prefisso:ModuleName .

Poiché ogni modulo ha un nome diverso, non ci saranno collisioni di nomi tra questi moduli:

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

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

NOTA :questa soluzione funziona anche con Redis Cluster .