使用Node.js

时间:2016-06-15 15:55:04

标签: javascript node.js redis node-redis

我试图用nodejs管理redis中的列表。我能够使用以下代码存储列表:

client.rpush(['room_'+room, data.customClient], function(err, reply) {

        client.lrange('room_'+room, 0, -1, function(err, reply) {
          console.log(reply);
      });
    });

控制台输出

  

[' POANqn9llyTcuIurUPAN',' m9vd57wecp6JvtHOrRSJ' ]

现在我要从此列表中删除一个键 POanqn9llyTcuIurUPAN 。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

可以通过lrem命令完成。删除具有该值的所有条目的用法将是:

client.lrem('room_'+room, data.customClient, 0, 'POanqn9llyTcuIurUPAN', function(err, data){
    console.log(data); // Tells how many entries got deleted from the list
});

此处 0 是一个计数,告知删除给定列表中值为 POanqn9llyTcuIurUPAN 的所有条目。从https://redis.io/commands/lrem开始,计数的可能值可以是:

  • count> 0:删除等于从头到尾移动的值的元素。
  • count< 0:删除等于从尾部移动到头部的值的元素。
  • count = 0:删除所有等于value的元素。

答案 1 :(得分:0)

可以很容易地做到这一点:

client.lrem('room_'+room, 0, 'POanqn9llyTcuIurUPAN', function(err, data){
    console.log(data); // Tells how many entries got deleted from the list
});

答案 2 :(得分:-1)

client.del('POanqn9llyTcuIurUPAN', function(err, reply) {
    console.log(reply);
});

或者之前检查:

client.exists('key', function(err, reply) {
  if (reply === 1) {
    client.del('POanqn9llyTcuIurUPAN', function(err, reply) {
      console.log(reply);
    });
  }
});