我对这些东西很陌生,但经过几次尝试,我想请你在这里寻求帮助,因为我不确定,究竟我做错了什么。
情况:在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命令都会被忽略。
答案 0 :(得分:2)
听起来您可能想要使用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
})
}
})