gpt4 book ai didi

node.js - 在 Node 中使用redis获取哈希键的所有字段和值

转载 作者:IT王子 更新时间:2023-10-29 06:00:53 24 4
gpt4 key购买 nike

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

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

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

关于node.js - 在 Node 中使用redis获取哈希键的所有字段和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12782844/

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