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());

输出:['你好','世界']

但是 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/

相关文章:

mysql - 如何使用nodejs将本地MySQL数据库部署到Heroku

node.js - 在 Ubuntu 14.04 上安装 Socket.IO 时出现构建错误

java - 检索 HashMap 的迭代器会抛出强制转换异常

java - 这可能吗? : HashMap<String, 字符>

node.js - 从其他容器启动和停止 docker 容器

javascript - 准备好的查询的 Node.js PostgreSQL 单引号问题

javascript - 如何为 Node JS 项目集成 Sonar ?

caching - 序列化和反序列化 POJO 的开销是否是使用 Infinispan 而不是 Memcached 或 Redis 来缓存 POJO 的一个很好的理由?

linux - 在MySQL前面使用redis

java - 增加 hashmap java 的值