データを挿入および/または削除したい Redis に複数のデータベースがあるとします。次のような流れがあります。
- DB #1にデータを挿入する
- 最初の挿入のコールバックの後、いくつかのことを行い、 DB #2にデータを挿入します
- 2 番目の挿入のコールバックの後、もう一度何かを行い、最後にデータをDB #3に挿入します。
基本的に次のように作成されるredisClientという1 つの変数を使用します。
redisClient = redis.createClient();
そして、新しい DB を選択している間、私はselectコマンドを追加の事前注意コールバックと共に使用するので、私の select コマンドは次のようになります。
redisClient.select(1, function(err) {
//Some programming logic (Insertion, deletion and stuff)
redisClient.select(2, function(err) {
//Do some additional programming logic (Insertion, deletion and stuff)
}
});
しかし、物事は常に混ざり合っています。redisClient 変数は一度だけ割り当てられ、その後アプリケーション全体で使用されることに注意してください。Redis にあるDB ごとに個別の redisClientsを使用するのがどれほど合理的か疑問に思っていました。つまり、次のようになります。
redisClientForDB1 = redis.createClient();
redisClientForDB2 = redis.createClient();
redisClientForDB3 = redis.createClient();
それが妥当なのか、それとも毎秒 4K のリクエストを受信して本番モードに移行しようとしているアプリケーションにとって正しい方法なのか、疑問に思っていました。このモデルはどのような問題に直面する可能性がありますか?