解決策1:さまざまなモジュールのデータをさまざまなRedisインスタンスに保存する
最も厳密に分離するのは、各モジュールのデータを個々のRedisインスタンス、つまり個々のRedisプロセスに保存することです。
解決策2:さまざまなモジュールのデータを単一のRedisインスタンスのさまざまなデータベースに保存する
Redisインスタンスには複数のデータベースを含めることができ、構成ファイルでデータベースの数を構成できます。デフォルトでは、16個のデータベースがあります。
これらのデータベースには、ゼロベースの数値インデックスで名前が付けられています。 selectコマンドを使用すると、 ithを使用できます。 データベース。選択後、後続のコマンドはすべてで動作します データベース。
したがって、モジュールごとに独立したデータベースを割り当てると、名前の衝突を回避できます。
注 :このソリューションはRedis Cluster
では機能しません 。 Redis Cluster
0番目のみを使用できます データベース。
解決策3:キープレフィックスを使用して名前空間を作成する
すべてのデータを単一のデータベースに保存する必要がある場合でも、名前空間を暗黙的に作成できます。 キープレフィックス 。モジュールごとに、このモジュールのすべてのデータは同じキーパターンを持つ必要があります:ModuleName:KeyName
つまり、このモジュールの各キーには同じプレフィックスが付いています:ModuleName
。
モジュールごとに名前が異なるため、これらのモジュール間で名前が衝突することはありません。
// Set keys for module1
SET module1:key1 value
SET module1:key2 value
// Set keys for module2
SET module2:key1 value
SET module2:key2 value
注 :このソリューションはRedis Cluster
でも機能します 。