Redis密钥未正确创建

时间:2016-05-02 09:43:25

标签: javascript node.js redis

我是Redis的新手,我正在通过生成自己的密钥来存储和访问它来尝试hmset一些值。但由于某种原因,密钥未正确创建,数据被覆盖。下面是我的代码,

locations.forEach(function(location) {
  var key = location.id;
  console.log(key); // all keys are correct
  client.hmset("locations", { key: location }); // using redis-jsonify
});

我获得的数据只是整个响应中的一个,因为密钥实际上保存为密钥本身。

例如:

enter image description here

我尝试使用client.incr('id', function(err, id) {});但同样的问题。

需要帮助。提前谢谢。

2 个答案:

答案 0 :(得分:2)

来自Redis HMSET doc

  

将指定的字段设置为散列中各自的值   存储在密钥中。此命令将覆盖中的任何现有字段   哈希值。如果key不存在,则会创建一个包含哈希的新密钥。

HMSET用于一次设置所有值。

如果您想一次设置一个哈希字段,请使用HSET

locations.forEach(function(location) {
  var key = location.id;
  client.hset("locations", key, location); // or `JSON.stringify(location)` if redis-jsonify doesn't work as expected
});

答案 1 :(得分:0)

Closuresresuce

for (var i = 0; i < locations.length; i++) {

    (function(i) {
        console.log('locations: ' + location[i]);
        client.hmset("locations", { i: location[i] });
    })(i);

}