我是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
});
我获得的数据只是整个响应中的一个,因为密钥实际上保存为密钥本身。
例如:
我尝试使用client.incr('id', function(err, id) {});
但同样的问题。
需要帮助。提前谢谢。
答案 0 :(得分:2)
将指定的字段设置为散列中各自的值 存储在密钥中。此命令将覆盖中的任何现有字段 哈希值。如果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)
Closures
至resuce
for (var i = 0; i < locations.length; i++) {
(function(i) {
console.log('locations: ' + location[i]);
client.hmset("locations", { i: location[i] });
})(i);
}