【问题标题】:Can't retrieve value in Redis in Node.js?无法在 Node.js 中的 Redis 中检索值?
【发布时间】:2015-08-07 22:58:24
【问题描述】:

我可以在 Redis 中存储键/值,但无法检索该值。

store.js

var client = redis.createClient();

token ='ghg782Nm';
webhook = 'http://test.com'; 

//store the key/value in Redis   
client.set(token, webhook, function(err, reply) {
        if (err) {
          console.log(err);
        }
});

//get the value 
client.get(token, function(err, value) {
  if (err) {
   console.log(err);
  }
console.log(value); //return 'http://test.com'

});

我在这里得到了正确的值,但是当我想从不同的文件 (somewhere_else.js) 中获取它时,该值为 null。

somewhere_else.js

var client = redis.createClient();

token ='ghg782Nm';

//get the value 
client.get(token, function(err, value) {
  if (err) {
   console.log(err);
  }
console.log(value); //Return null

});

我错过了什么?非常感谢!

【问题讨论】:

  • 您是否尝试在两个文件之间使用相同的client 实例?在您从另一个文件调用 get() 之前,set() 可能还没有完成?
  • @mscdex 我如何使用另一个文件中的同一个客户端?
  • 在单独的文件中创建客户端,并将其导出为模块。然后在store.jssomewhere_else.js 中需要这个文件,并将它用于这两个操作。但请确保您仅在 set 完成后才调用 get

标签: javascript node.js redis node-redis


【解决方案1】:

我测试了您的代码,但一切正常。先运行 score.js,然后运行某处_else.js。 如果你得到 null 可能是,get() 在 set() 之前运行

【讨论】:

  • 不可能,我先运行store.js,得到redis的“ok”回复,然后运行somewhere_else.js。
【解决方案2】:

您是否使用 redis-cli 检查过该值是否存在于 redis 中? 如果是,那么做

Redis.select(0, d function(.......)

它会选择数据库 0,虽然默认为零,但只是为了确保配置没有被篡改。

【讨论】:

    猜你喜欢
    • 2013-06-19
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2022-11-19
    • 2022-08-09
    • 2019-10-14
    相关资源
    最近更新 更多