【发布时间】:2020-03-26 00:07:41
【问题描述】:
我想使用批处理请求一次获取大量存储在 Redis 上的键/值。
我正在使用节点 js redis 客户端。这个想法是异步对多个键发出获取请求,有什么方法可以做到这一点?
我检查了 node js Redis 客户端中的批处理功能,据我了解,如果您想一次获取散列的所有元素,而不是在异步模式下一次获取不同键的数据,这在这种情况下很有用。
我要做的是读取所有表以根据值的属性(时间戳)选择特定的键/值
【问题讨论】:
我想使用批处理请求一次获取大量存储在 Redis 上的键/值。
我正在使用节点 js redis 客户端。这个想法是异步对多个键发出获取请求,有什么方法可以做到这一点?
我检查了 node js Redis 客户端中的批处理功能,据我了解,如果您想一次获取散列的所有元素,而不是在异步模式下一次获取不同键的数据,这在这种情况下很有用。
我要做的是读取所有表以根据值的属性(时间戳)选择特定的键/值
【问题讨论】:
【讨论】:
KEYS * 或重复SCAN 调用然后MGET 获取所有密钥。我认为 Redis 不支持对所有值应用逻辑并选择通过测试的值 - 这就是您在代码或数据库查询中所做的事情。
SCAN 都需要前一个返回的光标,所以我不相信你可以通过这种方式轻松地进行批量并行处理。如果您想尽量减少花费的时间,使用具有正确模式的 KEYS 后跟 MGET 将使所有数据到达您的进程所需的最短旅行时间,但在处理过程中会占用更多内存并在获取所有匹配键时阻塞 redis 服务器。