【发布时间】:2012-12-07 21:54:07
【问题描述】:
假设您在 Redis 中有 多个 db,您希望从中插入和/或删除数据。你有这样的流程;
- 将数据插入到 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 会有多合理。所以它会像;
redisClientForDB1 = redis.createClient();
redisClientForDB2 = redis.createClient();
redisClientForDB3 = redis.createClient();
我想知道这是否合理,或者对于将接收 每秒 4K 请求并即将进入生产模式的应用程序来说,这是否是正确的方法。该模型可能面临哪些问题?
【问题讨论】:
标签: javascript performance api node.js redis