假设您在Redis中有多个数据库,希望插入和/或删除数据。您的流程如下:
- 将数据插入到DB#1
- 在第一个插入的回调之后执行某些操作,然后将数据插入到DB#2
- 在第二个插入的回调之后再次执行一些操作,并最终将数据插入到DB#3
我使用一个名为redisClient的变量,它基本上是这样创建的:
redisClient = redis.createClient();
当我选择一个新的数据库时,我使用带有额外预防回调函数的 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会有多合理。所以它会像这样:
然而,事情经常混淆。请注意,变量redisClient仅分配了一次,然后在整个应用程序中使用。现在我想知道,为每个Redis数据库使用单独的redisClients是否合理。因此,它将是这样的;
redisClientForDB1 = redis.createClient();
redisClientForDB2 = redis.createClient();
redisClientForDB3 = redis.createClient();
我在想,如果一个应用程序将每秒接收到 4K个请求 并即将进入生产模式,这是否合理,或者这是否是正确的方式。这种模型可能会面临哪些问题?