gpt4 book ai didi

node.js - 在多个助手中将 Node.js redis 客户端声明为 const 是一种安全的使用方式吗?

转载 作者:行者123 更新时间:2023-12-03 06:44:48 25 4
gpt4 key购买 nike

这有点难以表达,所以我希望我的标题不会太糟糕。

我有一个前端/后端 React/Node.js(REST API) Web 应用程序,我想添加 Redis 支持来存储检索应用程序全局设置和每个用户的特定设置(如语言首选项、上次登录等...简单东西)所以我正在考虑向我的后端 REST API 添加一个/settings 分支,以从 redis 实例中推送/拉取这些信息。

这就是我对 Node.js 缺乏经验的地方。我正在考虑使用 ioredis 客户端,它似乎太容易了。如果我有几个助手(多个将调用 redis 的 .js)会将客户端构建为 const在每一个都安全吗?或者是否有另一种推荐的方法来重用它的单个实例?

这是我正在考虑做的一个示例。想象一下,如果我有 3 个需要访问 redis 客户端的辅助模块。我应该将它们声明为 const每个?或者将它们集中在一个辅助模块中,并从中获取客户端?两者都做有坏处吗?

const config = require('config.json');
const redis_url = config.redis_url;

//redis setup
const Redis = require('ioredis');
const redis = new Redis(redis_url);

module.exports = {
test
}

async function test(id) {
redis.get(id, function (err, result) {
if (err) {
console.error(err);
throw(err);
} else {
return result;
}
});

谢谢你。

最佳答案

如果没有redis冲突...
如果您所指的不同“帮助器”模块在与 redis 交互时没有冲突,例如覆盖/使用相同的 redis 键,那么我看不出有任何理由不使用相同的 redis 实例(如大蒜人所述)并将其导出到使用它的不同模块。
否则使用单独的redis数据库...
如果您确实需要单独的 redis 数据库连接,redis 附带 16 个数据库,因此您可以在创建新实例时指定要连接的数据库 - 见下文:

const redis = new Redis({ // SET UP CONFIG FOR CONNECTION TO REDIS
port: 6379, // Redis port
host: 127.0.0.1, // Redis host
family: 4, // 4 (IPv4) or 6 (IPv6)
db: 10, // Redis database to connect to
});

关于node.js - 在多个助手中将 Node.js redis 客户端声明为 const 是一种安全的使用方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62418282/

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