Redis
 sql >> Base de données >  >> NoSQL >> Redis

Comment utiliser les clés d'espace de noms sur redis pour éviter les collisions de noms ?

Solution 1 :stocker les données de différents modules dans différentes instances Redis

L'isolation la plus stricte consiste à stocker les données de chaque module dans une instance Redis individuelle, c'est-à-dire un processus Redis individuel.

Solution 2 :stocker les données de différents modules dans différentes bases de données d'une même instance Redis

Une instance Redis peut avoir plusieurs bases de données et vous pouvez configurer le nombre de bases de données dans le fichier de configuration. Par défaut, il y a 16 bases de données.

Ces bases de données sont nommées avec un index numérique de base zéro. Avec la commande select, vous pouvez utiliser le i base de données. Après la sélection, toutes les commandes suivantes fonctionneront sur le i base de données.

Ainsi, si vous affectez une base de données indépendante pour chaque module, vous pouvez éviter les collisions de noms.

REMARQUE :cette solution NE FONCTIONNE PAS avec Redis Cluster . Redis Cluster vous permet uniquement d'utiliser le 0ème base de données.

Solution 3 :créer un espace de noms avec un préfixe de clé

Si toutes vos données doivent être stockées dans une seule base de données, vous pouvez toujours créer implicitement un espace de noms avec préfixe de clé . Pour chaque module, toutes les données de ce module doivent avoir le même modèle de clé :ModuleName:KeyName , c'est-à-dire que chaque clé de ce module a le même préfixe :ModuleName .

Étant donné que chaque module a un nom différent, il n'y aura pas de collisions de noms entre ces 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

REMARQUE :cette solution fonctionne aussi avec Redis Cluster .