2016-08-28 12 views
1

私は自分のキーと値のペアのいくつかを保存するためにredisを使用したいと思いますが、私のモジュールの中には既にそれを使用しています。 redisはセッションデータのセッションストアとソケットioのredisアダプタを表します。ですから私の質問は簡単ですが、どのようにしてキーの衝突なしに自分のキーを格納するデータベース/名前空間を作成または指定できますか?私はnode-redisドライバを使用しています。名前の競合を避けるために名前空間キーを赤字にする方法はありますか?

答えて

4

解決策1:異なるRedisのインスタンス

最も厳密に分離して異なるモジュールのストアデータ、すなわち、個々のRedisのプロセス個々Redisのインスタンス内の各モジュールのデータを記憶しています。

解決方法2:

A Redisのインスタンスは複数のデータベースを持つことができ、あなたが設定ファイルにデータベースの数を設定することができ、単一のRedisのインスタンスの異なるデータベースで異なるモジュールのデータを格納します。デフォルトでは、16のデータベースがあります。

これらのデータベースには、0から始まる数値インデックスが付けられます。 select commandでは、i番目データベースを使用できます。選択後、後続のコマンドは、データベースで動作します。

したがって、モジュールごとに独立したデータベースを割り当てると、名前の衝突を避けることができます。

解決方法3:すべてのデータを単一のデータベースに格納する必要がある場合、あなたはまだ、暗黙的キー接頭辞名前空間を作成することができ、キー接頭辞で

を名前空間を作成します。各モジュールについて、このモジュールのすべてのデータは同じキーパターン、すなわちModuleName:KeyNameを持つ必要があります。つまり、このモジュールの各キーは同じプレフィックス:ModuleNameです。

各モジュールの名前が異なるため、これらのモジュール間に名前の衝突はありません。

関連する問題