1
我正在使用redis和节点(与node_redis),我想序列化来自redis的数据到一个XML文件(使用simple-xml-writer),但我偶然发现节点的异步行为。序列化REDIS数据与节点
我有一个数据集的a,b,c,d和e作为散列存储在redis中,键是数据:a,data:b data:c ...,每个键访问一个散列。现在我的XML文件应该是这样的:
<root>
<data record="a">
(data for a)
</data>
<data record="b">
(data for b)
</data>
...
</root>
我的办法是做这样的事情:
myobjects = Array.new();
["a","b","c","d","e"].forEach(function(str) {
database.hmget("data:" + str,function(err,obj){ myobjects.push(obj) });
});
now_serialize_myobjects();
是否有可能等待forEach
-loop完成和确保所有对象在database.hmget()
存储?所以当调用函数now_serialize_myobjects()
时,所有对象都覆盖了?
该问题的最佳解决方案是什么?
好主意。我现在使用#1,但我看到#2的优势。谢谢! – topskip 2012-01-13 10:37:42