我正在将一些使用 HashMap 的代码转换为 Redis。我在尝试复制 Hashmap 函数 .values() 时遇到了问题。
使用 HashMap :
var hTest = new HashMap();
hTest.set('1','hello');
hTest.set('2','world'});
console.log(hTest.values());
输出:['你好','世界']
但是 Redis 似乎没有对应的。我发现的最接近的是:
client.hset("rTest", "1", 'hello');
client.hset("rTest", "2", 'world'});
client.hgetall("rTest",function(err, values){
console.log(values)
});
输出{'1','hello','2','world'}
我知道我可以创建一个 for 循环并在回复中循环,但我希望有一个类似于 hashmap.values() 的命令。
最佳答案
您可以使用 HVALS
命令获取散列中的所有值。
但是,如果散列非常大,调用HVALS
或HGETALL
总是一个坏主意。它可能会阻塞 Redis 很长时间,因为 Redis 是单线程的。
相反,您可以使用 HSCAN
来增量迭代哈希。这应该是获取大型散列的所有值的推荐方法。
关于Node.js Redis 获取 HashMap 中的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42954943/