node js redis循环遍历每个哈希键值

Posted

技术标签:

【中文标题】node js redis循环遍历每个哈希键值【英文标题】:node js redis loop through each hash key value 【发布时间】:2014-06-08 11:44:21 【问题描述】:

我对 redis 和节点非常陌生,目前我正在尝试遍历我创建的一些测试哈希键并打印出来以筛选结果。这是我希望看到的结果:

 "aaData": [['Tim Osbourne'],['Joe Bloggs'],['John Doe'],['Perry Coke'],['Will Holmes'],['Steven Smith']

但是我得到了这个结果:

 "aaData": [[],[],[],[],[],[],]'Tim Osbourne','Joe Bloggs','John Doe','Perry Coke','Will Holmes','Steven Smith',

这是我的代码:

app = 要求('../app'); var redis = 要求(“redis”), 客户端 = redis.createClient(); 路线=要求('./'); var key_types = ''; client.keys("*", function (err, all_keys) key_types += ' "aaData": ['; all_keys.forEach(function (key, pos) // 使用 forEach 的第二个参数获取 pos key_types += "["; client.hmget([key, '空间所有者'], function(err, field_val) key_types = key_types + "'" + field_val + "',"; ); key_types += "],"; ); key_types += "]"; ); app.get('/table_data', function(req, res) res.render('table_data', 键:key_types); );

【问题讨论】:

【参考方案1】: 你不应该做keys * 它不起作用,因为 hmget 是异步的,您应该为此使用 async 模块 (async.map)。

[key, 'Owner of space'] 的目标是什么,因为'Owner of space' 总是会产生相同的结果?

【讨论】:

以上是关于node js redis循环遍历每个哈希键值的主要内容,如果未能解决你的问题,请参考以下文章

Redis常用命令--Hashes

Redis数据结构之字典

Redis 命令-哈希(Hash)

c#用foreach遍历数组、列表时是直接获得数据元素,而foreach哈希表时,为啥获得的是命名空间名??

Redis(开发与运维):13---哈希/散列对象

Redis 哈希(Hash)