2016-08-28 4 views
1

Je veux utiliser redis pour stocker certaines de mes paires de paires valeur/clé, mais certains de mes modules l'utilisent déjà. Le magasin de session express redis pour les données de session, ainsi que l'adaptateur redis pour socket io. Donc, ma question est simple, comment puis-je créer ou désigner une base de données/espace de noms pour stocker mes propres clés sans collisions de clés? J'utilise le pilote node-redis.Comment redéfinir les clés d'espaces de noms sur redis pour éviter les collisions de noms?

Répondre

4

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

L'isolement est le plus strictement le stockage de données de chaque module dans une instance individuelle Redis, à savoir un processus Redis individuel.

Solution 2: Stocker des données de différents modules dans différentes bases de données d'une seule 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.

Cette base de données est nommée avec un index numérique basé sur zéro. Avec le select command, vous pouvez utiliser la base de données ith. Après la sélection, toutes les commandes suivantes fonctionneront sur la base de données avec. Donc, si vous affectez une base de données indépendante pour chaque module, vous pouvez éviter les collisions de noms.

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

Si toutes vos données doivent être stockées dans une base de données unique, vous pouvez toujours créer implicitement un espace de noms avec préfixe clé. Pour chaque module, toutes les données de ce module doivent avoir le même motif 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 aucune collision de noms entre ces modules.