Node.js 与 Redis:同步还是异步?

2024-03-27

在我的应用程序(node/express/redis)中,我使用一些代码同时更新数据库中的多个项目:

app.put('myaction', function(req, res){
    // delete stuff
    db.del("key1");
    db.srem("set1", "test");

    // Add stuff
    db.sadd("set2", "test2");
    db.sadd("set3", "test3");
    db.hmset("hash1", "k11", "v11", "k21", "v21");
    db.hmset("hash2", "k12", "v12", "k22", "v22");
    // ...

    // Send response back
    res.writeHead(200, {'content-type': 'application/json'});
    res.write(JSON.stringify({ "status" : "ok" }));

    res.end(); 
});

我可以确定所有这些操作都会在方法返回之前执行吗?我关心的是异步处理。由于我不在数据库操作中使用回调函数,这样可以吗?


虽然所有命令都是异步发送的并且响应是异步解析的,但值得注意的是回调都是按顺序调用的。因此,您可以使用最后一个Redis命令的回调将响应发送给客户端,然后您就会知道在响应之前所有Redis命令都已执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js 与 Redis:同步还是异步? 的相关文章

  • 节点 aws-sdk s3 文件上传大小

    当使用 Node js 的 aws sdk npm 插件时 我可以使用以下代码上传 50kb 的 pdf 到 AWS s3 var params Bucket BUCKET Key pdf key Body file ContentType
  • 从 Nginx 到 Express.js 上的 socket.io 的反向代理上“无法获取”

    我已经关注了通过私有网络让 Node js 在两台 Ubuntu 14 04 服务器上通过 Nginx 工作 Node js 位于 myappserver 上 通过私有 IP myprivatewebserver 访问 并通过 mypubl
  • 无法使用“in”运算符在中搜索“_id”

    我正在尝试使用 mongoose 和express 来获取现有的用户文档 但我只得到这个 webroot api domain com production node modules mongoose lib document js 162
  • 未捕获的引用错误:模块/需求未定义

    我正在学习如何create import export模块在Node js 我已经经历过these http www sitepoint com understanding module exports exports node js 并试
  • “res.render”有什么作用,html 文件是什么样的?

    什么是res render做什么 html 文件是什么样的 我的最终目标是将文本文件中的任意逗号分隔值加载到 html 文件中 例如 我只能推断视图是 html 文件 并且回调返回该 html 文件 这是文档 http expressjs
  • fs.readFileSync 不是文件相关的? Node.js

    假设我的项目根目录下有一个名为file xml 假设我在tests 中有一个名为 test js 的测试文件 它有 const file fs readFileSync file xml 如果我现在跑步node tests test js从
  • Firebase 无需身份验证即可初始化 - firebase.auth 不是函数

    我无法弄清楚为什么我的一个 Firebase 应用程序使用 auth 进行初始化 而另一个则没有 我在这里遵循了节点安装选项 https firebase google com docs web setup https firebase g
  • 带有标题的图片库,在 keystonejs 上使用 CloudinaryImage

    我正在使用 keystonejs 和 CloudinaryImages 创建图像库 type Types CloudinaryImages 我需要能够为图像添加标题 我也在读这个 https github com keystonejs ke
  • Typescript 中的顶级等待和导入

    我正在研究 Typescript 并遇到问题 我想使用import和顶级await但目前 我一次只能使用一个 这是我的配置tsconfig json这允许我使用导入 target ESNext module ESNext 这个允许我使用顶级
  • 在dynamodb中使用batchWriteItem

    我的 dynamo 数据库中有两个表 一个是候选表 另一个是用户表我想在 dynamo 数据库中使用 batchWriteItem 以便在表中添加数据 我格式化的查询如下 var user userid usrid role candida
  • 使用PHP exec调用Node脚本并在finally方法之前将数据返回给PHP

    我有一个 PHP 脚本 它使用exec函数来执行 Node 脚本并将一些数据返回到同一 PHP 脚本 我的问题是我需要将数据返回给 PHP 而不必等待中的清理代码finally完成 我在下面编写了一些示例代码 向您展示代码的流程并说明我的问
  • 在函数中使用node-mysql

    我对 Nodejs 很陌生 有一个问题 尝试创建一个函数 该函数将调用我在表中提到其 ID 的任何字段的值 function getUserInfo userID dynamicField var query connection quer
  • NodeJS 最佳实践:流量控制错误?

    在 Node js 中 我应该使用错误来进行流程控制 还是应该更像异常一样使用它们 我正在 Sails js 中编写一个身份验证控制器和一些单元测试 目前 我的注册方法检查是否存在具有相同用户名的用户 如果用户已存在并具有该用户名 我的模型
  • 如何使用 forEach 删除列表中的元素?

    var people alex jason matt people forEach function p if p length gt 4 REMOVE THIS PERSON or pop it out of the list or wh
  • Mongoose 更新或插入许多文档

    我正在尝试使用最新版本的 mongoose 插入对象数组 或者更新相应的产品 ID 是否已存在 我一生都无法找出正确的使用方法 bulkWrite updateMany 等 而且我似乎无法在不出现错误的情况下找出语法 例如 我正在尝试 Pr
  • 如何将 Chosen 合并到我的 React 项目中?

    我想使用 jquery 插件Chosen https harvesthq github io chosen 在我的项目中 我安装了 jQuery 并通过 npm 选择 npm i jquery chosen js S 这两个库现在都位于我的
  • Firebase通过时间戳获取数据

    我需要使用过滤数据来获取时间戳匹配的特定数据 例如我需要数据在哪里arrivalTime与数据库中的精确日期和时间字段 时间戳字段匹配 我正在尝试下面 但它没有返回任何数据 arrivalTIme moment todaysDate for
  • 检索 Couchbase 的所有记录(文档)

    我正在使用 node js 并寻找一种方法来获取特定的 couchbase 桶的所有文档 有没有没有循环和增量索引的解决方案 我知道我可以制作一个原子键 然后通过循环使用它来检索所有数据 但我需要一个返回所有文档的函数 是否有任何函数 至少
  • Mocking/Stubbing Mongoose 模型保存方法

    给定一个简单的 Mongoose 模型 import mongoose Schema from mongoose const PostSchema Schema title type String postDate type Date de
  • 错误:找不到模块“@discordjs/opus”

    每次我运行不和谐的语音识别代码时 它都会上线 但一旦加入频道 我的代码就会显示错误 找不到模块 discordjs opus Require stack C Users SURYASH Desktop DiscordSpeechBot no

随机推荐

  • 创建基类对象的向量并在其中存储派生类对象

    我正在尝试创建一个员工数据库 员工向量 有 3 种类型的员工 即 Employees 是基类 Manager Engg 和 Scientist 是派生类 每个员工都有名字和姓氏 除了名字之外 这 3 种类型的员工中的每一种都有独特的统计数据
  • javascript date.utc 问题

    我正在尝试使用 javascript 比较 2 个日期 月末 1 个 月初 1 个 我需要以秒为单位比较这两个日期 因此我使用 Date UTC javascript 函数 这是代码 var d Date UTC 2010 5 31 23
  • 实体框架中推荐的身份生成方法是什么?

    我对 StoreGeneratePattern 的最高效的方式感兴趣 过去我习惯让数据库为我生成ID 但我想知道设置是否有任何优势 StoreGeneratedPattern None 代替 StoreGeneratedPattern Id
  • Demean R 数据框

    我想贬低 R 中的多列data frame 使用来自的示例这个问题 https stats stackexchange com questions 46978 fixed effects using demeaned data why di
  • android maven插件在Eclipse中没有获取ANDROID_HOME环境变量

    我正在开发一个 Android 应用程序项目 它是一个 Maven 项目 当我尝试作为 maven install 运行时 这就是我得到的 无法在项目 android client 上执行目标 com jayway maven plugin
  • 如果给定空白正则表达式,则 regex_replace 中的 C++ Mac OS 无限循环

    执行后 std regex replace the string std regex doesn t matter 我的 Mac 将无限期挂起 我是 xcode 新手 但我认为我正确使用它 我在调试程序时点击 暂停 发现最后执行的代码位于正
  • 无法通过Java删除目录

    在我的应用程序中 我编写了从驱动器中删除目录的代码 但是当我检查文件的删除功能时 它不会删除该文件 我写过一些这样的东西 Code to delete the directory if it exists File directory ne
  • javaFX 表视图中的错误

    I make TableView在 javaFX 中包含两个TableColumns TableView Span 的宽度大于所有的宽度TableColumn 但这不是问题 我不明白的是 当我单击包含数据的行外部区域和列外部区域 红色区域
  • 在哪里可以找到已实施的耐心差异?

    这个网站上有很好的答案 Bram Cohen 的耐心 diff 在 bazaar 中作为默认 diff 和 git diff 的一个选项找到 但我发现很难找到一个独立的独立程序来实现这个特定的 diff 算法 例如 我想将 Patient
  • 根据列表中的值将列添加到数据框

    我有一个如下所示的数据框 df lt data frame A c a b c d e f g h i B c 1 1 1 2 2 2 3 3 3 C c 0 1 0 2 0 4 0 1 0 5 0 7 0 1 0 2 0 5 gt df
  • PHP 发送邮件表单到多个电子邮件地址

    我对 PHP 非常陌生 正在联系页面上使用基本模板 发送邮件 表单 当单击 提交 按钮时 要求我将电子邮件发送到多个电子邮件地址 我已经四处搜寻 但还没有找到我需要的东西 我需要在下面的表单中添加什么代码才能将其发送到多个电子邮件地址
  • Tensorflow.Keras:自定义约束不起作用

    我正在尝试实现权重正交约束所示here https towardsdatascience com build the right autoencoder tune and optimize using pca principles part
  • 创建具有命名子组件的组件?

    我需要了解使组件生成和管理子组件背后的基础知识 我最初通过创建一个来尝试这个TCollection 并尝试为每个人命名TCollectionItem 但我知道这并不像我希望的那么容易 所以现在我要再次从头开始这个项目 我想这次能做对 这些子
  • 在特定数量的分隔符后添加 '\n'

    我怎样才能添加一个 n每四次之后 CSV 文件中的分隔符 使用 bash 输入文件示例 aaaa bbbbbb cccc ddddd eeee ffff gggg hhhh iii jjjj kkkk llll 需要输出 aaaa bbbb
  • 为什么 auto 在 C++ 中的 2D 和 1D 数组的“range for”中工作方式不同

    您好 我正在 C 中处理 2D 和 1D 数组并使用范围为访问元素 我使用的代码如下 对于二维数组 int ia 3 4 1 2 3 4 5 6 7 8 9 for auto row ia for auto col row cout lt
  • 对于 range.formatconditions 中的每个 fc 都失败。为什么?

    以下代码适用于我的工作簿中的大多数工作表 Function IsHighlighted As Boolean Dim wks As Worksheet For Each wks In ThisWorkbook Worksheets Dim
  • 为什么这个随机数生成器会生成相同的数字?

    第一个有效 但第二个总是返回相同的值 为什么会发生这种情况以及我应该如何解决这个问题 int main std random device rd std mt19937 gen rd std uniform real distributio
  • 更改正在运行的进程的环境变量

    我有一个导出环境变量并启动一些下标的脚本 export LOGLEVEL 1 home myuser bin myscript1 sh home myuser bin myscript2 sh LOGLEVEL可用于从下标启动的进程 如何更
  • java: 不使用时绑定异常地址使用错误(如netstat所示)

    我的应用程序使用特定的源端口与服务器建立出站连接 考虑到防火墙问题 强化的系统可能需要提前指定端口 我的问题是我的应用程序最初建立连接 但是 如果连接中断 它将重试 但套接字将收到 BindException 指出 地址正在使用 事实并非如
  • Node.js 与 Redis:同步还是异步?

    在我的应用程序 node express redis 中 我使用一些代码同时更新数据库中的多个项目 app put myaction function req res delete stuff db del key1 db srem set