node.js - 如何在 Node js应用程序的redis中使用hset基于子键删除

标签 node.js redis node-redis

我正在尝试在我的 nodejs 应用程序中使用 redis。我能够完美地保存和检索值(value)。我正在使用散列,它允许我拥有单个唯一键和子键。这里的 offer id 是我的子键,offer 是键。

我正在保存如下报价

let offer = {
    offerId: req.query.id,
    offerName: req.query.offerName,
    offerVendor: req.query.offerVendor
}
client.hset('offer', offer.offerId, JSON.stringify(offer), redis.print);

并像下面这样检索值

try {   
    console.log('ping response:', await client.ping());
    const offerId = req.query.id;
    client.hget('offer', offerId, function(err, reply){
        let offer = JSON.parse(reply);
        res.send(offer);
    });
} catch(err) {
    console.log('ping error:', err);
}

我想删除基于 id 的报价,就像基于 id 保存或获取一样。我已经阅读了文档 https://github.com/NodeRedis/node_redis#usage-example但没有在那里找到。

根据id删除offer的方法是什么?

最佳答案

如果您已经有了报价 ID,您可以使用 hdel 从报价哈希中删除它命令。您的代码看起来像这样:

client.hdel('offer', id)

调用的结果将是已删除键数的整数计数。如果您不知道客户端 ID,可以使用 hscan 查找它。命令。

关于node.js - 如何在 Node js应用程序的redis中使用hset基于子键删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44016038/

相关文章:

lua - 如何使用 redis-scripto 和 redis DB 在 LUA 中执行 null\nil 检查?

javascript - 如何在查询中获取查询对象?

node.js - 我应该在文件/模块之间共享 Redis 连接吗?

node.js - 在带有 Node.js 的 Heroku 上使用 Socket.io 和 Redis

c - 运行 Redis 的大量 TIME_WAIT 套接字连接

node.js - Socket.io 发出的信号并不总是在 Node.js + Redis + Heroku(多测功机)环境中收到

node.js - 使用身份验证用户名/密码nodejs连接到托管redis

node.js - 在 Google App Engine 上设置 AppRTC (WebRTC)

node.js - AWS Lambda - Mongoose 连接超时

redis - 如何在 Redis 中进行模糊搜索