我对这件事很陌生,但经过几次尝试,我想在这里寻求帮助,因为我不确定,我到底做错了什么。
情境:在Redis数据库中,我得到了一个键test,它的值类似于1,2,3,4。要将新的值放入键中,我使用rpush,因为我希望在键的末尾添加新的值(当我运行这个独立的,它作为一个魅力):
client.rpush("test", "5");
但是,我的想法是,首先我想检查一下,如果密钥存在,如果不存在,那么我将在其中添加一个值。为此,我决定使用LRANGE命令,现在的结果如下所示:
client.lrange("test", 0, 0, function(err, reply) {
if (reply.length === 0) {
client.rpush("test", 5);
}问题是,在上面描述的情况下,rpush似乎被“忽略”了,它不会存储这个值。我做错了什么?看起来,lrange回调中的任何Redis命令都会被忽略。
发布于 2016-12-06 21:57:25
听起来您可能想要使用LLEN而不是LRANGE。
https://redis.io/commands/llen
我不是一个节点的人,但这样的东西应该能工作。但是,您的示例应该可以使用,如果这不能清除它,我将继续更新您的描述,以包括一些日志记录。
client.llen('test', function(err, reply) {
if (err) {
// Log error
}
// Log reply
if (reply === 0) {
client.rpush('test', 5, function(err, reply) {
if (err) {
// Log error
}
// Log reply
})
}
})https://stackoverflow.com/questions/41004980
复制相似问题