在节点中使用redis获取hash key的所有字段和值

2024-04-02

红色是使用哈希,我需要存储具有多个字段和值的哈希键。 我尝试如下:

client.hmset("Table1", "Id", "9324324", "ReqNo", "23432", redis.print);
client.hmset("Table1", "Id", "9324325", "ReqNo", "23432", redis.print);
var arrrep = new Array();

client.hgetall("Table1", function(err, rep){
 console.log(rep);
});

输出是:{ Id: '9324325', ReqNo: '23432' }

我只得到一个值。如何获取哈希键中的所有字段和值?如果我错了,请帮助我,让我得到代码。谢谢。


您将获得一个值,因为您覆盖了前一个值。

client.hmset("Table1", "Id", "9324324", "ReqNo", "23432", redis.print);

这会将 Id、ReqNo 添加到 Table1 哈希对象。

client.hmset("Table1", "Id", "9324325", "ReqNo", "23432", redis.print);

这会覆盖 Table1 哈希对象的 Id 和 ReqNo。此时,哈希中只有两个字段。

实际上,您的问题来自于您尝试将关系数据库模型映射到 Redis 的事实。你不应该。对于 Redis,最好从数据结构和访问路径角度进行思考。

您需要为每条记录存储一个哈希对象。例如:

HMSET Id:9324324 ReqNo 23432 ... and some other properties ...
HMSET Id:9324325 ReqNo 23432 ... and some other properties ...

然后,您可以使用集合来存储 ID:

SADD Table1 9324324 9324325

最后检索与 Table1 集合关联的 ReqNo 数据:

SORT Table1 BY NOSORT GET # GET Id:*->ReqNo

如果您还想搜索与给定 ReqNo 关联的所有 ID,那么您需要另一个结构来支持此访问路径:

SADD ReqNo:23432 9324324 9324325

因此,您可以使用以下命令获取记录 23432 的 ID 列表:

SMEMBERS ReqNo:23432

换句话说,不要尝试转置关系模型:只需创建您自己的数据结构来支持您的用例。

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

在节点中使用redis获取hash key的所有字段和值 的相关文章

随机推荐

  • pandas 附加到具有不同名称的列

    如何附加2个具有不同列名的不同数据框 a pd DataFrame id 0 1 2 3 countryid 22 36 21 64 famousfruit banana apple mango orange famousanimal mo
  • 有什么方法可以让用户上传的 SVG 图像免受代码注入等影响?

    我想在网站上显示用户上传的 SVG 图像 但它们很容易被利用 https security stackexchange com questions 11384 exploits or other security risks with sv
  • 使用 DOM 样式通过 Javascript 获取或更改 CSS 类属性

    我的目标是更改表中列的背景颜色 而无需按 ID 或名称单独寻址每个数据条目 我知道有几种方法可以做到这一点 确切地说我已经尝试了 3 种 但每种方法都遇到了问题 为了简单明了起见 在这个问题中 我问如何使用元素 样式 背景颜色 http w
  • 在 JavaFX HTMLeditor 中设置本地图像

    我正在寻找一种使用 JavaFX HTMLEditor 的 setHtmlText 来添加local图像 我可以添加远程图像没有问题 HTMLEditor editor new HTMLEditor editor setHtmlText i
  • 使用充气城堡正确创建带有中间证书的新证书

    所以我的问题如下 基本上我想使用 bouncy castle jdk16 版本 1 46 创建一个证书链 一般来说 我对充气城堡和 java security 相当陌生 所以如果我的方法可能完全错误 但无论如何 这就是我所做的 到目前为止
  • 当一张表小得多时,以编程方式连接表还是使用 SQL Join 语句更快?

    当一张表小得多时 以编程方式连接表还是使用 SQL Join 语句更快 更具体地说 如何从hashmap
  • 如何在 Dart 中构建单例?

    单例模式确保只创建一个类的一个实例 我如何在 Dart 中构建它 感谢达特工厂建造者 https www dartlang org guides language language tour factory constructors 构建单
  • Flutter本地数据库存储

    目前我正在创建一个用户注册标准 它有三个注册页面 对于每次完成的用户注册页面 我想将其存储在本地存储中 如果用户在第 3 级注册之前关闭应用程序 我想显示已完成页面的输入详细信息 而无需调用 api 那么 这是在 flutter 中本地存储
  • 中断 (n)curses 获取传入信号

    我的一个程序使用 ncurses 来绘制一个小 tui 我的目标之一是使其能够移植到其他诅咒实现中 这意味着我想捕获终端仿真器在调整大小操作时发出的 SIGWINCH 并更新我的 tui 以遵循更改后的几何形状 而不依赖于 ncurses
  • 如何使用 C# 将其他系列添加到 Excel 图表

    I am trying to add an additional data series to the chart this shows CPU threshold I can get the range and create the gr
  • SSRS字体在哪里安装?

    简单的问题我找不到简单的答案 我正在使用报告服务器生成报告 并且报告使用自定义字体 我的问题是我需要在所有将运行报告的计算机上安装自定义字体还是仅在服务器上安装自定义字体 该公司使用SSRS 2008 只有在报告服务器上安装字体然后启用字体
  • 使用jquery保存元素的所有css属性

    我基本上试图将元素的所有当前 css 属性保存在本地 var array 中 我试过 el css and el css 没有运气 有什么快速的技巧吗 demo http so lucafilosofi com save all css p
  • 尝试访问 ViewSet 创建定义中的 request.data 时出现 KeyError 'id'

    我最近从 drf 2 4 升级到 v3 并一直在尝试覆盖def Create在我的一个视图集中 但是 当尝试访问我保存到序列化器变量的 request data 时 我会收到错误 KeyError at api appointments i
  • Ruport - “”的未定义方法“each”:String

    我正在遵循本教程中的第一个示例 http ruportbook com printable documents html http ruportbook com printable documents html 但我一直得到 String的
  • 是否可以控制从 matplotlib 颜色图中检索哪些颜色?

    我想将图中的颜色分配给由整数表示的标称数据 我想从定性颜色图中绘制颜色 特别是我想从 Set3 中绘制五种颜色 问题是我想使用前五种颜色 但颜色映射器对我的数据进行标准化 五个分类值的范围从 1 到 5 并从 12 种颜色中选择第 1 4
  • 如何使用 hooks 覆盖 Material ui 样式

    我尝试使用类名使用 React Hooks 和 Material Ui 创建剪切到页面顶部的 AppBar 并将鼠标悬停在其他抽屉上 全部如以下所述 https material ui com demos drawers clipped u
  • 在顶点着色器中指定 3D 渲染目标的目标层? [HLSL]

    在 HLSL Directx11 中工作时 我发现有两种绑定 3D 渲染目标的方法 要么绑定整个目标 要么在指定图层时绑定它 如果绑定整个目标 如何在 HLSL 代码中指定应用输出颜色的图层 我怀疑这需要几何着色器 这是正确的吗 是否有任何
  • 两个 NFC 标签分别链接到项目中的两个不同活动?

    我正在做一个 NFC 应用程序 想知道这种情况是否可能 假设我在一个项目中有 2 个 NFC 标签和 2 个活动 写入NFC A以打开Activity A 方法是将NFC A中的MIME类型写入为 application com examp
  • 投票与推送 - 有什么理由避免推送通知?

    我刚刚作为 技术 产品经理继承了一个 Android 应用程序项目 该项目使用5 秒计时器轮询远程 URL查看应用程序启动的某些工作是否已完成 我最初的反应当然是建议用推送 通知机制替换它 最好是Android内置的GCM 这样工作就从手机
  • 在节点中使用redis获取hash key的所有字段和值

    红色是使用哈希 我需要存储具有多个字段和值的哈希键 我尝试如下 client hmset Table1 Id 9324324 ReqNo 23432 redis print client hmset Table1 Id 9324325 Re