【问题标题】:How to increment a value in redis?如何在redis中增加一个值?
【发布时间】:2016-09-30 03:35:56
【问题描述】:

如果值已经存在于 redis 中,我正在尝试增加 redis 中键值的值。例如,如果我们有

client.get(key, function checkRedis(err, data){
  var redisData = JSON.parse(data);
  if(redisData === null){
     //do something
  }else{
     client.incr(redisData.val);
  }
});

据我了解,根据使用“incr”的文档,应该自动将该特定值增加 1。但我无法看到这种情况成功发生,我错过了什么

【问题讨论】:

    标签: node.js redis node-redis ioredis


    【解决方案1】:

    您需要给client key 而不是值。

    我相信以下内容会满足您的需求。

    client.get(key, function checkRedis(err, data){
      var redisData = JSON.parse(data);
      if(redisData === null){
         //do something
      }else{
         redisData.val++;
         client.set(key, redisData);
      }
    });
    

    【讨论】:

    • 如果结构看起来像下面这样 parentKey:{ key1:{ val: 0 }, ........ } 我必须增加 val
    • @RajPowar 而不是你必须做的client.incr("key1")
    • 我对@9​​87654325@ 一无所知,但redis 是一个键值存储。据我所知,您不能增加对象属性的值。我已经更新了我的答案 - 它可能会有所帮助
    【解决方案2】:

    redis中需要使用INCR键来增加值

       const redisClient = require('ioredis');
       const name = 'Bob';
       redisClient.incr('id', (err, id) =>
       {
          redisClient.hmset('user:' + id, 'username', name);
       });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      • 2016-01-28
      • 2021-10-01
      • 2017-03-11
      • 2019-11-15
      • 2020-06-13
      • 2018-01-30
      相关资源
      最近更新 更多