sql >> データベース >  >> NoSQL >> Redis

名前の衝突を避けるためにredisでキーに名前空間を付ける方法は?

    解決策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でも機能します 。




    1. MongoDB:配列要素のプロパティの一意のインデックス

    2. 最も効率的なnode.jsプロセス間通信ライブラリ/メソッドは何ですか?

    3. Mongooseを使用してObjectIdで検索しているドキュメントが見つかりません

    4. 高速書き込みの一時的な行ストレージソリューションのためのMongoDB対Redis対Cassandra