私は自分のキーと値のペアのいくつかを保存するためにredisを使用したいと思いますが、私のモジュールの中には既にそれを使用しています。 redisはセッションデータのセッションストアとソケットioのredisアダプタを表します。ですから私の質問は簡単ですが、どのようにしてキーの衝突なしに自分のキーを格納するデータベース/名前空間を作成または指定できますか?私はnode-redisドライバを使用しています。名前の競合を避けるために名前空間キーを赤字にする方法はありますか?
1
A
答えて
4
解決策1:異なるRedisのインスタンス
最も厳密に分離して異なるモジュールのストアデータ、すなわち、個々のRedisのプロセス個々Redisのインスタンス内の各モジュールのデータを記憶しています。
解決方法2:
A Redisのインスタンスは複数のデータベースを持つことができ、あなたが設定ファイルにデータベースの数を設定することができ、単一のRedisのインスタンスの異なるデータベースで異なるモジュールのデータを格納します。デフォルトでは、16のデータベースがあります。
これらのデータベースには、0から始まる数値インデックスが付けられます。 select commandでは、i番目データベースを使用できます。選択後、後続のコマンドは、データベースで動作します。
したがって、モジュールごとに独立したデータベースを割り当てると、名前の衝突を避けることができます。
解決方法3:すべてのデータを単一のデータベースに格納する必要がある場合、あなたはまだ、暗黙的キー接頭辞で名前空間を作成することができ、キー接頭辞で
を名前空間を作成します。各モジュールについて、このモジュールのすべてのデータは同じキーパターン、すなわちModuleName:KeyName
を持つ必要があります。つまり、このモジュールの各キーは同じプレフィックス:ModuleName
です。
各モジュールの名前が異なるため、これらのモジュール間に名前の衝突はありません。
関連する問題
- 1. 名前空間の競合を回避するためのカスタムパッケージプロバイダ
- 2. 名前の競合を避ける方法アップロードされたファイル
- 3. XML名前空間競合
- 4. クラス名と名前空間の競合を避けるにはどうすればいいですか?
- 5. symfony:実際の名前が数字で始まる場合のクラス/名前空間の名前付け方法
- 6. C#で名前空間とクラスの同じ名前を避けるには?
- 7. C++の名前空間の競合
- 8. XNAとSystem名前空間の競合
- 9. コントローラー名とプレゼンター名前空間の名前が競合しています
- 10. 名前空間のアクティブレコードモデルを避けるには?
- 11. 名前空間の名前を変更する方法は?
- 12. PHP名前空間エイリアスは競合していますか?
- 13. XMLに名前空間がない場合、XmlRoot名前空間で装飾されたクラスを逆シリアル化する方法はありますか?
- 14. ある名前空間を別の名前空間に置き換える
- 15. Rails 3.1に名前空間を含める名前空間アプリケーションのHAMLビュー
- 16. C#の名前空間名 "LinqToVisualTree"はありますか?
- 17. C++:名前空間の競合する宣言エラー
- 18. 名前空間にファイルを含める
- 19. はクラスまたは名前空間の名前ではありません
- 20. ある名前空間から別の名前空間にクラスをプログラムで移動する方法はありますか?
- 21. グローバル名前空間に型または名前空間の名前が見つかりませんでした(アセンブリ参照がありませんか?)
- 22. アプリケーション「AppName」は、小文字の名前空間「appname」を作成しているため、「AppName」名前空間があいまいになります。
- 23. System.Collectionsは「システム名前空間の名前空間」ですか?
- 24. VBでルート名前空間をエスケープする方法はありますか?
- 25. XMLへの名前空間の追加を避ける(Java)
- 26. アプリの名前空間はどこにありますか?[Android]
- 27. ある名前空間からGitLab CEエクスポートを別の名前空間のgitlab.comにインポートできますか?
- 28. 名前空間を持たないクラス名だけを取得する方法
- 29. ある名前空間から別の名前空間にカーネルスレッドを移動できますか?
- 30. Typescript - 名前空間を別の名前空間にインポート