gpt4 book ai didi

node.js - 在 nodejs 中使用 redis 的最佳实践是什么?

转载 作者:IT王子 更新时间:2023-10-29 06:01:38 39 4
gpt4 key购买 nike

我正在使用 nodejs、express 和 node_redis 构建一个应用程序.我想做一个模块来封装所有与redis相关的操作,这样我就不必到处处理redis key。

|- app.js
|- models
| |- db.js <-- All redis-related operations here
.....

那么我这里有两个问题。

  1. 我想创建 redis 连接并选择一个数据库:

    var redis = require('redis');
    var client = redis.createClient();
    client.select(config.database, function() {
    // actual db code
    });

    由于 select 是一个异步调用,我如何在单独的模块 (db.js) 中使用它?

  2. 看起来 client.quite() 必须在脚本结束之前调用,否则脚本不会退出。当 client 被封装为 db.js 中的局部变量时,我如何在 db.js 之外执行此操作?

最佳答案

我建议使用已定义的接口(interface)创建服务/存储库/接口(interface)之类的东西,然后调用它的方法。

例如,如果您有一个用户数据库:

var UserService=function(){
this.client=new ...
}

UserService.prototype.getUserById=function(id, cb){
this.client.select(...,function(result,err){
cb(result);
}
}

UserService.prototype.... so on

现在,在您的 Express 应用中,您将创建一个 UserService 变量并使用它。当然,您应该更智能地创建 UserService。在UserService中,然后你可以添加缓存。

var app = express();
var userService = new UserService();
//...

结束阅读:Do I need to quit

关于node.js - 在 nodejs 中使用 redis 的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21708340/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com