Node.js Redis 获取 HashMap 中的所有值

标签 node.js redis hashmap

我正在将一些使用 HashMap 的代码转换为 redis。我在尝试复制 Hashmap 函数 .values() 时遇到了问题。

使用 HashMap :

 var hTest = new HashMap();
 hTest.set('1','hello');
 hTest.set('2','world'});
 console.log(hTest.values());

输出:['hello','world']

但 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 命令获取散列中的所有值。

但是,如果散列非常大,调用 HVALSHGETALL 总是一个坏主意。由于 Redis 是单线程的,它可能会阻塞 Redis 很长时间。

相反,您可以使用 HSCAN 增量迭代哈希。这应该是获取大型哈希的所有值的推荐方法。

关于Node.js Redis 获取 HashMap 中的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42954943/

相关文章:

javascript - 错误 : cannot find module when testing with mocha

java - HashMap: containsKey() 当它应该是不正确的时候?

java - 如何声明和初始化包含 HashSet 的 HashMap

android - PhoneGap/Cordova Android 开发

javascript - "."没有被解析为 require() Node.js 的一部分

redis - 在 Redis 中获取当前时间

ruby-on-rails - Rails has_many :through

database - 对集合操作支持良好的数据库的建议

java - SharedPreferences 总是返回默认值而不是实际值

node.js - Firebase 云功能同步 nodejs