1つのredisインスタンスで複数のデータベースを使用したくない場合。お気づきのとおり、複数のインスタンスを使用すると、複数のコアを利用できます。データベース選択を使用する場合は、アップグレード時にリファクタリングする必要があります。複数のインスタンスを監視および管理することは難しくなく、苦痛でもありません。
実際、インスタンスに基づいて分離することにより、各データベースではるかに優れたメトリックを取得できます。各インスタンスには、そのデータセグメントを反映する統計情報があり、より適切なチューニングと、より応答性が高く正確なモニタリングが可能になります。最新バージョンを使用し、インスタンスごとにデータを分離します。
ジョナトンが言ったように、keysコマンドを使用しないでください。キーインデックスを作成するだけで、はるかに優れたパフォーマンスが得られます。キーを追加するときはいつでも、キー名をセットに追加してください。keysコマンドは、戻るのにかなりの時間がかかるので、いったん拡大するとひどく役に立ちません。
アクセスパターンによって、データを構造化する方法を決定するようにします。データを思い通りに保存してから、後でアクセスして細かく調べる方法に取り組みます。パフォーマンスがはるかに向上し、データを消費するコードのほうがずっとクリーンでシンプルであることがよくあります。
シングルスレッドに関しては、redisは速度と原子性のために設計されていると考えてください。あるデータベースのデータを変更するアクションが別のデータベースで待機する必要はありませんが、そのアクションがダンプファイルに保存されている場合、またはスレーブでトランザクションを処理している場合はどうでしょうか。その時点で、並行処理プログラミングの雑草に入り始めます。
複数のインスタンスを使用することで、マルチスレッドの複雑さをより単純なメッセージパッシングスタイルシステムに変えます。